Quando você tem um servidor confiável (Node, .NET, PHP, etc.), faça a troca de token ali para que o client secret nunca chegue ao navegador.
Esse é o modelo certo para integrações OAuth personalizadas em código. Os caminhos SDK React e JS puro (popup / integração por script) são separados — veja Intastellar Sign-In — SDK React e JavaScript puro.
Sequência
- O navegador conclui o fluxo de redirecionamento e chega ao callback com
codeestate. - Sua rota de callback verifica
state, depois chama seu backend (ou roda no servidor na mesma requisição) para trocar o código. - O backend faz
POSTemTOKEN_ENDPOINTcomgrant_type=authorization_code,code,redirect_uri,client_ideclient_secret. - O backend cria uma sessão para o usuário (define cookie, guarda tokens no servidor).
- O navegador é redirecionado ao app só com seu cookie de sessão.
Exemplo (conceitual)
POST TOKEN_ENDPOINT
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code=AUTHORIZATION_CODE
&redirect_uri=https%3A%2F%2Fapp.example.com%2Fauth%2Fcallback
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRETAdicione parâmetros PKCE se o cliente for híbrido ou se a etapa de autorização usou PKCE.
Armazenamento do secret
- Carregue
client_secretde variáveis de ambiente ou gerenciador de segredos. - Rotacione secrets se expostos; use credenciais separadas por ambiente.
Próximo
Last updated