You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
examples: provider auth in SSR and SPA for Auth0, Apple, Microsoft and Google #32
Runnable examples proving provider auth "just works" in both SSR and SPA modes for Auth0, Apple, Microsoft and Google, built on askr-server provider sign-in (askrjs/askr-server#76) and the askr router binding (askrjs/askr#777). These replace the browser-session examples being removed from askr-auth (askrjs/askr-auth#65).
Requirements
One example app (or one per provider, whichever is clearer) using the first-party Vite+ toolchain, runnable in SSR and SPA modes.
Each provider shows: setup, sign-in, callback, reload restoration, protected route redirect with next, session expiry/renewal or interactive recovery, local logout (plus provider logout where supported), and error states.
API access from server actions only: Microsoft Graph (one call), a Google API after separate consent (one call), and an Auth0 API audience (one call). Apple shows the real server exchange boundary and first-login profile handling.
No tokens or secrets in the browser, the repo or the README. Configuration comes from environment variables, with setup instructions that match askr add auth output.
Local HTTPS / tunnel instructions, including Apple's no-localhost constraint.
A simulated-provider mode so CI can run every example without live credentials.
Acceptance criteria
CI runs each example against simulated providers in Chromium, Firefox and WebKit, in SSR and SPA modes.
The implementation is in #34 at 06cbac9461490f3b0dab55d42943818c94734b6e, including the real private-session-expiry repair: an active private-query 401 clears authenticated/protected state and starts provider recovery; aborted requests do not trigger that transition. The native Google SPA regression reproduced stale private content before the repair and passes afterward.
Local simulated-provider coverage passed across SSR/SPA and Chromium, Firefox, and WebKit (54 browser cases), alongside the workspace checks and builds. This is local candidate-graph evidence. Hosted run 38386007906 fails before compilation/tests because public npm cannot install the unpublished @askrjs/vite@0.5.0 archive. No publication or normal public-registry acceptance is claimed.
Keep this issue open until #34 passes ordinary hosted acceptance and lands on develop. Live provider-account qualification remains deferred as recorded in askr-auth#71; simulated providers do not establish live compatibility.
Activity
smiggleworth commentedon Oct 13, 2026
The implementation is in #34 at
06cbac9461490f3b0dab55d42943818c94734b6e, including the real private-session-expiry repair: an active private-query 401 clears authenticated/protected state and starts provider recovery; aborted requests do not trigger that transition. The native Google SPA regression reproduced stale private content before the repair and passes afterward.Local simulated-provider coverage passed across SSR/SPA and Chromium, Firefox, and WebKit (54 browser cases), alongside the workspace checks and builds. This is local candidate-graph evidence. Hosted run 38386007906 fails before compilation/tests because public npm cannot install the unpublished
@askrjs/vite@0.5.0archive. No publication or normal public-registry acceptance is claimed.Keep this issue open until #34 passes ordinary hosted acceptance and lands on develop. Live provider-account qualification remains deferred as recorded in askr-auth#71; simulated providers do not establish live compatibility.