Autorisationskode-flowet er det sædvanlige mønster når browseren forlader dit site, brugeren logger ind hos Intastellar, og Intastellar sender dem tilbage til dit site med en engangskode du bytter til tokens.
Denne artikel vs React / ren JS popup-flow
Hvis du bruger @intastellar/signin-sdk-react eller ren HTML/JS-bundlen, kører logind som regel i en popup, og en token kommer via postMessage. I den tilstand bygger du ikke manuelt GET authorize-URL og POST token-forespørgsel.
Brug denne side når dit team implementerer authorize + callback + token (tilpasset stack, visse mobil-opsætninger eller server-drevne web-apps). Til valg af klienttyper først, se Kom godt i gang.
Parameternavne nedenfor følger almindelig OAuth 2.0 / OIDC-brug — bekræft præcise navne, scopes og discovery-URL’er i din Intastellar-registrering og tekniske reference.
Hvad du skal bruge
- Registreret client ID, redirect URI og (for fortrolige klienter) client secret.
- Et sikkert sted til at gemme
stateog PKCE-code_verifiermellem omdirigeringstrin. - HTTPS omdirigerings-URI’er i produktion.
Trin 1 — Send brugeren til authorize
Send browseren til autorisationsendepunktet med query-parametre:
| Parameter | Formål |
|---|---|
response_type | Brug code til dette flow. |
client_id | Dit registrerede client ID. |
redirect_uri | Skal præcist matche en registreret URI. |
scope | Mellemrumsadskilte scopes (ofte inkl. openid til OIDC). |
state | Tilfældig, uigættelig værdi; du verificerer den ved retur. |
code_challenge | PKCE: SHA-256-hash af code_verifier, Base64url-kodet (offentlige klienter). |
code_challenge_method | Typisk S256. |
Eksempel (linjeskift for læsbarhed):
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=S256Gem state og den rå code_verifier (til PKCE) server-side eller i en sikker, kortlivet cookie, så du kan validere dem ved callback.
Trin 2 — Håndter callback
Intastellar omdirigerer til din redirect_uri med:
| Query-param | Betydning |
|---|---|
code | Engangs autorisationskode. |
state | Ekko af værdien du sendte; skal matche gemt state. |
Hvis brugeren nægter adgang eller der opstår en fejl, kan du modtage error og error_description i stedet — håndter dem uden at behandle dem som succes.
Trin 3 — Udveksl koden til tokens
POST til token-endepunktet (typisk application/x-www-form-urlencoded):
| Felt | Formål |
|---|---|
grant_type | authorization_code |
code | Koden fra callback. |
redirect_uri | Samme URI som i trin 1. |
client_id | Dit client ID. |
code_verifier | PKCE: den oprindelige hemmelige verifier (offentlige klienter). |
client_secret | Kun fortrolige klienter. |
Svaret indeholder som regel access_token, valgfri refresh_token og et id_token når openid blev anmodet om. Valider ID-token (issuer, audience, udløb, signatur) med JWKS fra issuer, når du stoler på claims i din app.
Sikkerhedstjekliste
- Aldrig spring
state-verifikation over — forebygger CSRF på callback. - Brug PKCE for enhver klient der ikke kan holde en client secret (SPA’er, mobil).
- Brug HTTPS for hver omdirigerings-URI i produktion.
- Opbevar refresh tokens og client secrets kun på servere du kontrollerer.
Ofte stillede spørgsmål
invalid_grant lige efter callback
Ofte kode allerede brugt, udløbet kode eller redirect_uri / PKCE mismatch. Koder er som regel engangsbrug. Se Log ud, fejl og fejlfinding.
Skal vi bruge PKCE på en ren server-app?
Hvis browseren starter flowet og der ingen hemmelighed er i browseren, ja. Hvis en fortrolig server starter og afslutter alt uden at eksponere hemmeligheden, følg hvad din registrering tillader — brug stadig state.
Næste
- Omdirigerings-URI’er og callbacks — stram registrering og undgå mismatch-fejl.
- Sessioner, cookies og tokens — efter tokens er ankommet.
Last updated