Quando você tem um servidor confiável (Node, .NET, PHP etc.), faça a troca de token ali para o client secret nunca chegar ao navegador.
Isso corresponde a configurações OAuth de código customizadas que você controla. Os caminhos em popup do SDK React e JS puro são separados — Intastellar Sign-In — React e JavaScript.
Como encaixa
- O navegador termina o fluxo de redirect e cai no seu callback com
codeestate. - Sua rota de callback verifica
statee chama o 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 (não o secret).
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_SECRETInclua parâmetros PKCE se este cliente for híbrido ou se o passo de autorização usou PKCE.
Armazenamento do secret
- Carregue
client_secretde variáveis de ambiente ou gerenciador de secrets. - Rotacione secrets se expostos; use credenciais separadas por ambiente.
Perguntas frequentes
O front-end pode chamar a URL de token com o secret?
Não. Tudo no navegador pode ser copiado. Mantenha o secret no servidor.
Usamos PKCE no navegador — ainda usamos o secret?
Depende do tipo de cliente e do registro. Se o navegador iniciou o fluxo com PKCE como cliente público, a troca pode não usar secret — confira no console. Existem configurações híbridas; siga sua referência técnica.
Próximo
Last updated