Human authentication
The SPA uses an OIDC client library; the API independently validates the resulting access token.
- Redirect to Keycloak for Authorization Code + PKCE S256; complete the callback and code exchange through oidc-client-ts.
- Send the bearer access token through Nginx to the human API listener. OIDC state and user data use sessionStorage.
- Validate signature using JWKS, issuer, API audience and timestamps; explicitly require exp. Resolve issuer + subject to an active internal principal.
A valid JWT establishes identity; it does not by itself authorize resource access.