Skip to content

ID Token

O ID Token é um token de segurança que contém Claims sobre a autenticação. É um JWT (JSON Web Token) que pode ser decodificado e validado.

Estrutura do JWT

O ID Token é composto por três partes separadas por pontos:

header.payload.signature
  • header: Metadados sobre o token
  • payload: As claims (informações) do token
  • signature: Assinatura para validação

Claims Padrão

As Claims padrão são:

sub

Abreviatura de Subject Identifier. Identificador único do usuário no sistema.

json
"sub": "000001"

exp

Momento de expiração em que o ID Token deverá não ser mais aceito como válido. Seu valor é do tipo JSON number que representa o número de segundos desde 1970-01-01T0:0:0Z.

json
"exp": 1697234567

iat

Momento em que o JWT foi emitido. Seu valor é do tipo JSON number que representa o número de segundos desde 1970-01-01T0:0:0Z.

json
"iat": 1697230967

iss

Abreviação de Issuer. Representa a entidade emissora do JWT.

json
"iss": "fanbase"

aud

Audiência para qual o ID Token é intencionado. Seu próprio client_id deve estar presente.

json
"aud": "exampleclient"

profile

Objeto que contém as informações do usuário autenticado. Seus campos precisam ser definidos conforme necessidade de cada sistema.

json
"profile": {
  "name": "João Silva",
  "email": "joao@exemplo.com"
}

Decodificação do JWT

O payload do JWT é codificado em Base64URL. Você pode decodificá-lo para visualizar as claims:

javascript
function decodificarJWT(token) {
  const partes = token.split('.');
  const payload = JSON.parse(atob(partes[1].replace(/-/g, '+').replace(/_/g, '/')));
  return payload;
}

const idToken = 'qbcd.1234.xyz';
const claims = decodificarJWT(idToken);
console.log(claims);

Validação

Antes de utilizar o ID Token, você deve validá-lo conforme descrito em Validação do ID Token.

Documentação da API Fanbase