The authorization flow
Step by step: send the user, receive a code, exchange it for tokens.
Updated October 10, 2026Sign in with Fades uses the OAuth 2.0 authorization code flow. We recommend PKCE for every app.
The URLs and parameter names below are illustrative. Use the exact endpoints shown in your developer dashboard.
1. Send the user to Fades
GET /oauth/authorize
?response_type=code
&client_id=YOUR_CLIENT_ID
&redirect_uri=https://yourapp.com/callback
&scope=profile email
&state=RANDOM_VALUE
&code_challenge=PKCE_CHALLENGE
&code_challenge_method=S256The user signs in (if needed) and approves your app on the consent page.
2. Receive the code
https://yourapp.com/callback?code=ONE_TIME_CODE&state=RANDOM_VALUECheck that state matches what you sent. If it doesn't, stop. This protects against forged requests.
3. Exchange the code for tokens
POST /oauth/token
grant_type=authorization_code
code=ONE_TIME_CODE
redirect_uri=https://yourapp.com/callback
client_id=YOUR_CLIENT_ID
code_verifier=PKCE_VERIFIER4. Read the user's profile
Call the user info endpoint with the access token to get the profile fields your scopes allow. See Scopes.
Codes are single use and expire quickly. Exchange them right away on your server.
Was this article helpful?
Still need help?
Tell us what's happening and we'll take a look.