Endpoint de Tokens
El interesado deberá hacer una solicitud de token presentando su código de autorización (Authorization Code) al endpoint utilizando los parámetros adecuados en forma de query string.
URLs
| Método | URL | Acción | Descripción |
|---|---|---|---|
| POST | /api/token/v2 | Registrar | Intercambia el código de autorización por tokens (id_token y access_token) |
Producción:
{security-producao}/api/token/v2Homologación:
{security-homologacao}/api/token/v2Parámetros
| Parámetro | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|
grant_type | Sí | Tipo de concesión | authorization_code |
client_id | Sí | ID del cliente | exampleClient |
client_secret | Sí | Secreto del cliente | ********** |
code | Sí | Código de autorización recibido | 50b98752-ac5e-4bf3-a59b-7456f9f58685 |
Ejemplo de Solicitud
Producción:
POST {security-producao}/api/token/v2?grant_type=authorization_code&client_id=exampleClient&client_secret=**********&code=******Homologación:
POST {security-homologacao}/api/token/v2?grant_type=authorization_code&client_id=exampleClient&client_secret=**********&code=******Respuesta de Éxito
La respuesta de la solicitud será un JSON en el modelo del ejemplo a continuación:
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 de la Respuesta
| Campo | Descripción |
|---|---|
id_token | JWT con información relacionada al usuario |
access_token | No soportado |
token_type | Tipo del token (siempre "Bearer") |
expires_in | Tiempo de validez restante en segundos |
refresh_token | No soportado |
scope | Permisos del usuario concedidos al cliente |
Posibles Errores
- "The request is missing a parameter": Faltan parámetros obligatorios (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 incorrecto
- "The informed authorization code is invalid": Código de autorización inválido o ya utilizado
- "The informed Grant Type is invalid or not implemented": Grant Type inválido o no implementado
Ejemplo de Implementación
javascript
async function intercambiarCodigoPorToken(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: 'su_client_secret',
code: code
})
});
const tokens = await response.json();
if (tokens.id_token) {
validarIdToken(tokens.id_token);
}
}Próximo Paso
Después de recibir los tokens, debe validar el ID Token antes de utilizarlo.
