Aplicações de página única não podem guardar com segurança um client secret. Use o fluxo authorization code apenas com PKCE, ou o pacote oficial @intastellar/signin-sdk-react se você usa React e a Intastellar o suporta para seu cliente — o SDK usa popup e verificação de token em vez de você montar a URL authorize e o POST de token manualmente.
Para padrões React e JS vanilla (apenas exemplos placeholder), veja Intastellar Sign-In — SDK React e JavaScript puro.
Resumo do fluxo (código manual + PKCE)
- Gere
code_verifier(string aleatória de alta entropia) e derivecode_challenge(S256). - Guarde
code_verifieronde possa lê-lo no callback — ex.:sessionStorageda aba, ou cookie cifrado via um BFF pequeno. - Redirecione para
AUTHORIZATION_ENDPOINTcomcode_challenge/code_challenge_method=S256. - No callback, envie
code+code_verifierao seu backend (recomendado) ou ao endpoint de token se o produto permitir clientes públicos sem secret (confirme no console).
Prefira um backend-for-frontend (BFF)
Mesmo em SPA, troca de token e refresh são mais seguros em uma API mesma origem:
- O navegador recebe só um cookie de sessão opaco da sua API.
- Refresh tokens nunca passam por
localStorage. - CORS e CSRF podem ser controlados no seu domínio.
Se precisar tratar tokens inteiramente no navegador, minimize a vida útil, evite localStorage para refresh tokens e planeje XSS como comprometimento total da sessão.
CORS e iframes
Não incorpore a UI de login Intastellar em iframe oculto salvo o produto suportar fluxos silenciosos ou embutidos explicitamente. Prefira redirecionamento de página inteira para entrar e sair.
Próximo
Lado do servidor (clientes confidenciais) se você também serve um backend tradicional.
Last updated