JSON Web Token (JWT)


Autenticação JWT (JSON Web Token)

Visão Geral

Este método de autenticação utiliza tokens JWT (JSON Web Token) via header Authorization para validar o acesso à API. O token é validado verificando sua existência, validade, revogação e expiração.

Quando utilizar:

  • Aplicações que requerem autenticação JWT
  • Cenários onde é necessário revogar tokens individualmente

Tipo de Autenticação: Autenticação baseada em Bearer Token (JWT) enviado no header Authorization seguindo o padrão RFC 6750.


Credenciais Necessárias

Headers Obrigatórios

HeaderTipoObrigatórioDescrição
AuthorizationstringSimToken JWT no formato "Bearer {token}"

Parâmetros Adicionais: Não há parâmetros adicionais necessários. A autenticação é realizada exclusivamente através do header Authorization.


Exemplo de Requisição

Request HTTP

text

cURL - GET

bash

cURL - POST (com body)

bash

Validações Realizadas

O sistema realiza as seguintes validações na ordem apresentada:

  1. Presença do Token: Verifica se o header Authorization foi fornecido no formato "Bearer {token}". O token não pode estar vazio ou ausente.
  2. Estrutura do Token JWT: Valida se o token possui uma estrutura JWT válida e extrai o claim jti (JWT ID) do token. Tokens com estrutura inválida são rejeitados.
  3. Existência do Token no Banco: Confirma se o jti extraído do token corresponde a um token cadastrado no banco de dados através do serviço de autenticação JWT.
  4. Status de Revogação: Verifica se o token foi revogado (IsRevoked = false). Tokens revogados não podem ser utilizados mesmo que ainda não tenham expirado.
  5. Data de Expiração: Valida se o token ainda está dentro do período de validade comparando a data de expiração (ExpiresAt) com a data/hora atual (UTC). Tokens expirados são rejeitados.

Respostas

Sucesso (200 OK)

Quando a autenticação é bem-sucedida, a requisição prossegue normalmente para o endpoint solicitado. Não há uma resposta específica de autenticação, pois o filtro apenas valida o token JWT.

A resposta dependerá do endpoint acessado.

Erros Possíveis

401 Unauthorized - Token Não Fornecido

Quando ocorre: Quando o header Authorization não foi informado ou não está no formato "Bearer {token}".

json

 

401 Unauthorized - Token Inválido

Quando ocorre: Quando o token não possui uma estrutura JWT válida ou não contém o claim jti necessário para validação.

json

 

401 Unauthorized - Token Não Encontrado

Quando ocorre: Quando o jti extraído do token não corresponde a nenhum token cadastrado no banco de dados.

json

 

401 Unauthorized - Token Revogado

Quando ocorre: Quando o token foi marcado como revogado (IsRevoked = true) no sistema. Isso geralmente acontece após logout ou por questões de segurança.

json

 

401 Unauthorized - Token Expirado

Quando ocorre: Quando a data/hora de expiração do token (ExpiresAt) é anterior à data/hora atual (UTC).

json

Nota: Este método de autenticação retorna apenas erros 401 Unauthorized. Não são gerados erros 403 Forbidden ou 400 Bad Request nesta camada de autenticação.