Single-page applications kunnen een client secret niet veilig in de browser bewaren. Gebruik de authorization code flow met PKCE, of het officiële pakket @intastellar/signin-sdk-react als je React als doel hebt en je client daarvoor is ingericht — de SDK gebruikt een pop-up en verificatie in plaats van dat je authorize + token-POST handmatig opbouwt.
Voor concrete React- en vanilla-patronen (alleen placeholders), zie Intastellar Sign-In — React en JavaScript.
Flowsamenvatting (handmatige code + PKCE)
- Genereer
code_verifier(hoog-entropie willekeurige string) en leidcode_challengeaf (S256). - Bewaar
code_verifierwaar je die bij de callback kunt lezen — bijv.sessionStoragevoor het tabblad, of een versleutelde cookie via een kleine BFF. - Redirect naar
AUTHORIZATION_ENDPOINTmetcode_challenge/code_challenge_method=S256. - Bij callback stuur je
code+code_verifiernaar je backend (aanbevolen) of naar het token endpoint als je product publieke clients zonder secret toestaat (bevestig in je console).
Geef de voorkeur aan een backend-for-frontend (BFF)
Zelfs in een SPA zijn token exchange en refresh veiliger op een same-origin-API:
- De browser krijgt alleen een opaque sessiecookie van je API.
- Refresh tokens raken nooit
localStorage. - CORS en CSRF zijn op jouw domein eenvoudiger te beheersen.
Als je tokens volledig in de browser moet afhandelen, minimaliseer de levensduur, vermijd localStorage voor refresh tokens en behandel XSS als volledige sessiecompromittering.
CORS en iframes
Embed de Intastellar login-UI niet in een verborgen iframe tenzij het product expliciet stille of ingebedde flows ondersteunt. Geef de voorkeur aan volledige pagina-redirect voor aan- en afmelden.
Veelgestelde vragen
Is de React-pop-up hetzelfde als PKCE-redirect?
Nee. Het SDK-pop-up-pad is een andere integratiestijl. Deze pagina gaat over redirect + PKCE als je de flow zelf bouwt.
“CORS error” bij aanroep van het token endpoint vanuit JavaScript
Vaak verwacht — veel token endpoints zijn niet bedoeld om direct vanuit de browser te worden aangeroepen. Gebruik jouw backend of een BFF.
Volgende
Server-side (vertrouwelijke) clients als je ook een traditionele backend met een secret draait.
Last updated