3 Commits
Author SHA1 Message Date
Archibold a39da9e615 Ignore local scratch and the secrets-carrying start.sh 2026-11-07 14:44:10 +11:00
Archibold 27677215bd Handle encrypted and HS256 id_tokens in the OIDC callback
Authlib's parse_id_token only reads a 3-segment JWS, so sign-in 500s
against providers that encrypt the id_token (Authentik with an
Encryption Key issues a 5-segment RSA-OAEP-256/A256CBC-HS512 JWE) or
that sign it with the client secret (Authentik with no Signing Key
issues HS256, which the RS256-only JWKS rejects).

OIDCClient subclasses the starlette OAuth2 client and, when the
standard parse fails on a format problem, falls back to an HS256
decode with the client secret, then to the issuer's
userinfo_endpoint. Claim-level failures (bad nonce, expiry, audience,
issuer) are raised as OAuthError so /auth/callback redirects to
/auth/login?error=... instead of blowing up. /auth/authorize likewise
catches provider/network errors and redirects to the login page.
2026-11-05 16:24:22 +11:00
Archibold fc6ee0d748 Add uv project scaffolding and dependency lock 2026-10-28 21:44:52 +11:00