Endpoint de Tokens
O interessado deverá fazer uma requisição de token apresentando seu código de autorização (Authorization Code) ao endpoint utilizando os parâmetros adequados na forma de query string.
URLs
| Método | URL | Ação | Descrição |
|---|---|---|---|
| POST | /api/token/v2 | Cadastrar | Troca o código de autorização por tokens (id_token e access_token) |
Produção:
{security-producao}/api/token/v2Homologação:
{security-homologacao}/api/token/v2Parâmetros
| Parâmetro | Obrigatório | Descrição | Exemplo |
|---|---|---|---|
grant_type | Sim | Tipo de concessão | authorization_code |
client_id | Sim | ID do cliente | exampleClient |
client_secret | Sim | Segredo do cliente | ********** |
code | Sim | Código de autorização recebido | 50b98752-ac5e-4bf3-a59b-7456f9f58685 |
Exemplo de Requisição
Produção:
POST {security-producao}/api/token/v2?grant_type=authorization_code&client_id=exampleClient&client_secret=**********&code=******Homologação:
POST {security-homologacao}/api/token/v2?grant_type=authorization_code&client_id=exampleClient&client_secret=**********&code=******Resposta de Sucesso
A resposta da requisição será um JSON no modelo do exemplo abaixo:
json
{
"id_token": "qbcd.1234.xyz",
"access_token": "44f5380d-8caa-442c-a1ad-11a1b211bf49",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "12c270b0-5512-40e8-ci0c-f67d50489486",
"scope": "profile"
}Campos da Resposta
| Campo | Descrição |
|---|---|
id_token | JWT com informações relacionadas ao usuário |
access_token | Não suportado |
token_type | Tipo do token (sempre "Bearer") |
expires_in | Tempo de validade restante em segundos |
refresh_token | Não suportado |
scope | Permissões do usuário concedidas ao cliente |
Possíveis Erros
- "The request is missing a parameter": Faltam parâmetros obrigatórios (client_id, client_secret, grant_type, code)
- "The informed Client ID is invalid": Client ID inválido
- "The informed Client Secret does not match the correct secret": Client Secret incorreto
- "The informed authorization code is invalid": Código de autorização inválido ou já utilizado
- "The informed Grant Type is invalid or not implemented": Grant Type inválido ou não implementado
Exemplo de Implementação
javascript
async function trocarCodigoPorToken(code) {
const response = await fetch('{security-producao}/api/token/v2', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: new URLSearchParams({
grant_type: 'authorization_code',
client_id: 'exampleClient',
client_secret: 'seu_client_secret',
code: code
})
});
const tokens = await response.json();
if (tokens.id_token) {
validarIdToken(tokens.id_token);
}
}Próximo Passo
Após receber os tokens, você deve validar o ID Token antes de utilizá-lo.
