Esta AWS Lambda implementa um endpoint simples de autenticação baseada em JWT, exposta via API Gateway HTTP API (v2). Ela permite:
- Login (
/login) para geração de token JWT - Consulta do usuário autenticado (
/me) a partir de um token válido
A função foi desenvolvida em Java, utilizando a biblioteca jjwt para criação e validação de tokens.
- Java
- AWS Lambda
- API Gateway HTTP API (v2)
- JWT (JSON Web Token)
- Biblioteca
io.jsonwebtoken (jjwt) - Jackson (JSON)
| Variável | Obrigatória | Descrição |
|---|---|---|
JWT_SECRET |
Sim | Chave secreta usada para assinar os tokens JWT. Deve conter mínimo de 32 caracteres |
⚠️ Caso a variável não exista ou seja menor que 32 caracteres, a Lambda lançará erro em tempo de execução.
-
Cliente envia requisição para
/login -
Lambda gera um JWT com:
subject= usernamerole=USER- Expiração de 1 hora
-
Cliente usa o token no header
Authorization -
Endpoint
/mevalida o token e retorna os dados do usuário
Gera um token JWT para o usuário informado.
Headers
Content-Type: application/json
Body
{
"user": "11122233399"
}- O campo
useré obrigatório - Não há validação de senha (modelo simplificado)
{
"token": "eyJhbGciOiJIUzI1NiJ9..."
}{
"message": "user é obrigatório"
}Retorna os dados do usuário autenticado a partir do JWT.
Headers
Authorization: Bearer <TOKEN_JWT>
{
"user": "11122233399",
"role": "USER"
}{
"message": "Token não informado"
}O token gerado contém:
| Claim | Valor |
|---|---|
sub |
Username informado no login |
role |
USER |
iat |
Data de emissão |
exp |
Data de expiração (1 hora) |
Assinatura:
- Algoritmo: HS256
- Chave:
JWT_SECRET
| Código | Descrição |
|---|---|
| 200 | Sucesso |
| 400 | Requisição inválida |
| 401 | Não autorizado |
| 404 | Rota não encontrada |
| 500 | Erro interno |
A Lambda registra nos logs:
- Path da requisição
- Método HTTP
- Mensagens de erro (em caso de exceção)
Exemplo:
PATH=/login
METHOD=POST
