Endpoint de token: troca de código e atualização | Didit
Na Didit, POST /token/ troca um código de autorização PKCE ou faz a rotação de um refresh token. Reutilizar um refresh token revoga a sessão.
https://<name>.auth.didit.me, e nunca aceitam a sua chave de API da Didit.Corpo
- Authorization code grant
- Refresh token grant
Uma das duas concessões, escolhida por grant_type. O endpoint aceita os campos de ambas as concessões e valida todos os campos que recebe, pelo que uma atualização que também contenha um code_verifier malformado recebe um erro de campo. Envie apenas os campos da sua concessão; qualquer outro campo recebe unknown_field.
authorization_code O parâmetro de consulta code recebido pelo seu redirect_uri. Verifique o state do callback antes de o trocar.
128"Vb0bVt4CLlr8ZL0kE5mAxv8gS6R0rW3hYqC1pN7dJ2s"
O verificador PKCE cujo hash S256 foi o code_challenge do início de sessão.
43 - 128^[A-Za-z0-9._~-]{43,128}$"dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"
O redirect_uri exato com que o início de sessão foi iniciado. Deve ainda ser um dos URIs de redirecionamento da aplicação.
2048"https://app.example.com/auth/callback"
Opcional. Quando enviado, deve ser igual ao ID da sua aplicação, caso contrário o pedido falha com invalid_client.
64"7b0a6c2e-3f41-4c9a-8d55-1e2f3a4b5c6d"
Opcional e aceite a partir de clientes OpenID Connect padrão. Nunca amplia o que o início de sessão concedeu.
512"openid email"
Resposta
Novos tokens para a sessão.
Tokens para uma sessão. Substitua todos os três em conjunto após uma atualização.
JWT ES256, cabeçalho typ: at+jwt. Envie-o como Authorization: Bearer <access_token>. Declarações: AccessTokenClaims.
"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6ImF0K2p3dCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJSZ3F1NzE3OWUtbGhKMGJ2VmVELVlnIiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJjbGllbnRfaWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQifQ.AxrqN8Pm-Op-3OayZk8HcvlFQZhozRiOvQ0SgQsGgrz4UNeJlUEeSlq9B8WcYUuM8naRaY5kQt_TUofnsYcyYQ"
JWT ES256, cabeçalho typ: JWT, para a sua aplicação ler quem iniciou sessão. Nunca o envie como token de acesso. Declarações: IDTokenClaims.
"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJNTHRPNHM4SHItQnJrcDd2NTlPV0Z3IiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJhdXRoX3RpbWUiOjE3OTIyMzM2NzQsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJlbWFpbCI6InBlcnNvbkBleGFtcGxlLmNvbSIsIm5vbmNlIjoibi0wUzZfV3pBMk1qIn0.avhfDFp_aUV5_1ssYzwDcIA7H6Waf19P0bn5GCg25FhLIZBGIlwc8HiUPGj1j26r21OkP4FQnS_jM1Ho3dHtKQ"
De utilização única. É válido até a sessão terminar, e cada renovação devolve um novo.
"N4yZTl6y24YKYq77X_SOrBn1q2Lit81WBQMOay7dq_IVfTnxyY8ZGcJk-6-fcmWW"
Bearer Segundos até o token de acesso expirar: no máximo 300, menos se a sessão terminar mais cedo.
0 <= x <= 300299
A sessão à qual estes tokens pertencem, o mesmo valor que o claim sid.
"c9abf6cc-2d64-4bf2-b31e-a4d09a070ab1"