ietf-tools / ietf-tools/dev-planning-dispatch
Auth-state store + hydration + token refresh
Open
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 2
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Status: ✅ Done.
Reactive auth state for the UI, plus session restore on load with no redirect and no flash of incorrect state.
app/stores/auth.tsis a Pinia store holdingisAuthenticatedanduser. Both default to logged-out so that SSR and the first client paint render the anonymous view, and the logged-in state is applied only after mount.Header.vuerestores the session on load — gated on theoidcfeature flag, inonMounted, client-only — viagetUser(). Logged-in state is derived purely from the stored session, so an expired access token never reports the user as logged out. Crucially there is no redirect on page load; that was the requirement oidc-spa could not meet.automaticSilentRenewtogether with the refresh token keeps the access token fresh in the background. On-demand refresh for authenticated API calls is provided separately bygetAccessToken()(see the Pink-facing work).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue is marked done and names app/stores/auth.ts and Header.vue as the main entry points. Review the Pinia auth state, the onMounted getUser() session restore, the oidc feature-flag gate, and getAccessToken(); completion is the described hydration behavior, no redirect or flash on load, and background token renewal.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- authentication, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 15/100