Skip to content

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étodoURLAçãoDescrição
POST/api/token/v2CadastrarTroca o código de autorização por tokens (id_token e access_token)

Produção:

{security-producao}/api/token/v2

Homologação:

{security-homologacao}/api/token/v2

Parâmetros

ParâmetroObrigatórioDescriçãoExemplo
grant_typeSimTipo de concessãoauthorization_code
client_idSimID do clienteexampleClient
client_secretSimSegredo do cliente**********
codeSimCódigo de autorização recebido50b98752-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

CampoDescrição
id_tokenJWT com informações relacionadas ao usuário
access_tokenNão suportado
token_typeTipo do token (sempre "Bearer")
expires_inTempo de validade restante em segundos
refresh_tokenNão suportado
scopePermissõ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.

Documentação da API Fanbase