De authorization code-flow is het gebruikelijke patroon waarbij de browser je site verlaat, de gebruiker zich bij Intastellar aanmeldt en Intastellar ze terugstuurt naar je site met een eenmalige code die je inwisselt voor tokens.
Deze handleiding versus de React- / platte JS-pop-upflow
Als je @intastellar/signin-sdk-react of het platte HTML/JS-bundelpad gebruikt, loopt aanmelden meestal in een pop-up en komt een token binnen via postMessage. In die modus hoef je niet handmatig de GET authorize-URL en POST token-request op te bouwen.
Gebruik deze pagina als jouw team authorize + callback + token implementeert (eigen stack, sommige mobiele opzetten of server-gestuurde webapps). Voor het eerst clienttypen kiezen, zie Aan de slag.
Parameternamen hieronder volgen gangbare OAuth 2.0 / OIDC-gebruik — bevestig exacte namen, scopes en discovery-URL’s in jouw Intastellar-registratie en technische referentie.
Wat je nodig hebt
- Geregistreerde client ID, redirect-URI en (voor vertrouwelijke clients) client secret.
- Een veilige plek om
stateen de PKCE-code_verifiertussen redirectstappen op te slaan. - HTTPS-redirect-URI’s in productie.
Stap 1 — Stuur de gebruiker naar authorize
Stuur de browser naar het authorization endpoint met queryparameters:
| Parameter | Doel |
|---|---|
response_type | Gebruik code voor deze flow. |
client_id | Je geregistreerde client ID. |
redirect_uri | Moet exact overeenkomen met een geregistreerde URI. |
scope | Spaties-gescheiden scopes (bevat vaak openid voor OIDC). |
state | Willekeurige, niet te raden waarde; je controleert die bij terugkeer. |
code_challenge | PKCE: SHA-256-hash van code_verifier, Base64url-gecodeerd (publieke clients). |
code_challenge_method | Meestal S256. |
Voorbeeld (regelafbrekingen voor leesbaarheid):
GET AUTHORIZATION_ENDPOINT?
response_type=code
&client_id=YOUR_CLIENT_ID
&redirect_uri=https%3A%2F%2Fapp.example.com%2Fauth%2Fcallback
&scope=openid%20profile%20email
&state=RANDOM_STATE
&code_challenge=CODE_CHALLENGE
&code_challenge_method=S256Bewaar state en de ruwe code_verifier (voor PKCE) server-side of in een veilige, kortlevende cookie zodat je ze bij de callback kunt valideren.
Stap 2 — Verwerk de callback
Intastellar redirect naar je redirect_uri met:
| Queryparam | Betekenis |
|---|---|
code | Eenmalige authorization code. |
state | Echo van de waarde die je stuurde; moet overeenkomen met opgeslagen state. |
Als de gebruiker toegang weigert of er een fout optreedt, kun je error en error_description krijgen — verwerk die zonder ze als succes te behandelen.
Stap 3 — Wissel de code in voor tokens
POST naar het token endpoint (meestal application/x-www-form-urlencoded):
| Veld | Doel |
|---|---|
grant_type | authorization_code |
code | De code uit de callback. |
redirect_uri | Dezelfde URI als in stap 1. |
client_id | Je client ID. |
code_verifier | PKCE: de oorspronkelijke secret verifier (publieke clients). |
client_secret | Alleen vertrouwelijke clients. |
Het antwoord bevat meestal access_token, optioneel refresh_token en een id_token als openid was gevraagd. Valideer de ID token (issuer, audience, verloop, handtekening) met JWKS van de issuer als je op claims in je app vertrouwt.
Security-checklist
- Sla
state-verificatie nooit over — voorkomt CSRF op de callback. - Gebruik PKCE voor elke client die geen client secret kan bewaren (SPA’s, mobiel).
- Gebruik HTTPS voor elke redirect-URI in productie.
- Houd refresh tokens en client secrets alleen op servers die jij beheert.
Veelgestelde vragen
invalid_grant direct na de callback
Vaak code al gebruikt, verlopen code of redirect_uri / PKCE-mismatch. Codes zijn meestal eenmalig. Zie Afmelden, fouten en probleemoplossing.
Hebben we PKCE nodig op een puur server-app?
Als de browser de flow start en er geen secret in de browser zit, ja. Als een vertrouwelijke server alles start en afrondt zonder het secret bloot te geven, volg wat je registratie toestaat — gebruik nog steeds state.
Volgende
- Redirect-URI’s en callbacks — registratie aanscherpen en mismatchfouten vermijden.
- Sessies, cookies en tokens — nadat tokens binnen zijn.
Last updated