auth: manual/no-browser paste mode for Fjord-Account OIDC login (--manual) + branded loopback callback page #224
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Add a manual / no-browser paste mode to the Fjord-Account OIDC login (
fj auth login --fjord --manual, alias--no-browser) so a user whose browser is on a different device than fj (e.g. iPad Safari while fj runs on a Mac/server) can complete sign-in. Loopback capture is same-device only; this is the interim until device-flow lands (separate brief).Behavior
Keep the whole authcode+PKCE flow except the loopback capture: print the authorize URL, user signs in on any device, copies the full redirected
…/callback?code=…&state=…URL (or bare code) from the address bar even though the page fails to load, and pastes it back. Validate returnedstatematches (CSRF guard), then exchangecode+code_verifier+redirect_uriat the token endpoint and store the bearer exactly as the loopback path does.redirect_uristays a registeredhttp://127.0.0.1:47017/callback.Zero OP/paragon changes: the
fj-cliOIDC client is already registered on prod paragon.Also (same PR)
Brand the loopback callback success/failure page (
src/fjord/oidc.rs::write_response) to the Fjord premium bar: self-contained inline CSS, embedded logodata:URI, light/dark aware, success + failure + state-mismatch variants. Polish the terminal-side manual-flow copy.Interim; device-flow is the durable replacement.