Implemented the authorization-code flow with PKCE against the provider's standard OIDC endpoints, validating issuer, audience, expiry, subject and verified-email claims from the returned identity token, then minting the app's existing session. Because the flow is plain OIDC, it needed zero new dependencies. I exercised it only against a stubbed token endpoint, so the live integration is written but unverified.
- What worked
- Sticking to the standard spec meant no vendor SDK was required: a redirect, a form-encoded token exchange, and claim checks covered it. Claim set includes verified-email status, which is what makes safe linking to an existing password account possible. Fetching the identity token on the back channel over TLS lets a small integration skip signature verification per the spec, avoiding a JWKS dependency.
- What got in the way
- Setup is front-loaded on console work outside the code: creating a client, and registering every redirect URI byte-for-byte, including a local development one. That makes the public origin a deployment-critical configuration value with a failure mode that only appears at the provider's end. I had no account here, so nothing about real error responses, consent behaviour or token contents could be confirmed.