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
| Header | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Authorization | string | Sim | Token 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
cURL - GET
cURL - POST (com body)
Validações Realizadas
O sistema realiza as seguintes validações na ordem apresentada:
- Presença do Token: Verifica se o header
Authorizationfoi fornecido no formato "Bearer {token}". O token não pode estar vazio ou ausente. - 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. - Existência do Token no Banco: Confirma se o
jtiextraído do token corresponde a um token cadastrado no banco de dados através do serviço de autenticação JWT. - 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. - 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}".
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.
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.
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.
401 Unauthorized - Token Expirado
Quando ocorre: Quando a data/hora de expiração do token (ExpiresAt) é anterior à data/hora atual (UTC).
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.