Confidential client flow — the token exchange uses a client secret. The secret is sent to our backend proxy per-request and never stored.
Enter your IdP details. The client secret is used only for the token exchange and is never stored server-side.
The browser redirects to the IdP's authorization endpoint. Unlike PKCE, there is no code_challenge — the client secret is the proof of identity at token exchange time.
// Fill in config above
The IdP redirects back with a short-lived code in the URL query string after user authentication.
// Awaiting redirect from IdP…
Sends the code + client secret to /api/token-exchange. The backend makes the actual POST to the IdP, and returns both the request it sent and the IdP's response.
// Preview will appear after IdP redirect
Exact HTTP Request sent by Backend to IdP
// Will appear after exchange
IdP Token Response
// Awaiting token exchange…
The id_token is a signed JWT with three base64url-encoded parts separated by dots.