Skip to content

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étodoURLAcciónDescripción
POST/api/token/v2RegistrarIntercambia el código de autorización por tokens (id_token y access_token)

Producción:

{security-producao}/api/token/v2

Homologación:

{security-homologacao}/api/token/v2

Parámetros

ParámetroObligatorioDescripciónEjemplo
grant_typeTipo de concesiónauthorization_code
client_idID del clienteexampleClient
client_secretSecreto del cliente**********
codeCódigo de autorización recibido50b98752-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

CampoDescripción
id_tokenJWT con información relacionada al usuario
access_tokenNo soportado
token_typeTipo del token (siempre "Bearer")
expires_inTiempo de validez restante en segundos
refresh_tokenNo soportado
scopePermisos 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.

Documentación de la API Fanbase