Skip to content

feat(ui): OIDC "Log in with SSO" button#113

Merged
astrojerms merged 1 commit into
mainfrom
feat/oidc-ui-button
Jul 8, 2026
Merged

feat(ui): OIDC "Log in with SSO" button#113
astrojerms merged 1 commit into
mainfrom
feat/oidc-ui-button

Conversation

@astrojerms

Copy link
Copy Markdown
Owner

Finishes the OIDC feature (backend shipped in #110) — the one follow-up I deferred there.

Change

  • server: OIDCHandler.register mounts an unauthenticated /auth/oidc/enabled route (200 + {"enabled":true}). It is registered only when auth.oidc.enabled, so its presence is the availability signal (404 = SSO off).
  • ui: Login.svelte probes /auth/oidc/enabled on mount and, when present, renders a "Log in with SSO" button (with an "or" divider) alongside the bearer-token form, linking to /auth/oidc/login.

Tests

The enabled probe returns 200 + enabled:true and is mounted by register(). npm run check clean, 50 UI tests pass, make build green.

Remaining OIDC work: validation against a real IdP (the one step needing an actual provider).

Finishes the OIDC feature (backend shipped in #110). The login page now
probes an unauthenticated /auth/oidc/enabled route (registered only when
OIDC is configured) and, when present, renders a "Log in with SSO"
button linking to /auth/oidc/login. When OIDC is off the route 404s and
the button stays hidden.

- server: OIDCHandler.register mounts /auth/oidc/enabled (200 +
  {"enabled":true}); it is only registered when auth.oidc.enabled, so
  its presence is the availability signal.
- ui: Login.svelte probes it on mount and conditionally shows the SSO
  button (with an "or" divider) alongside the bearer-token form.

Tests: the enabled probe returns 200 + enabled:true and is mounted by
register(). npm run check clean, 50 UI tests pass. Remaining OIDC work:
validation against a real IdP.
@astrojerms astrojerms merged commit 8f804fd into main Jul 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant