Files
Bib.-do-Usu-rio/CHECKLIST.md
2026-04-29 01:13:15 +00:00

2.1 KiB

Checklist - Microsserviço Biblioteca de Usuário

Implementação do Token JWT

  • Arquivo .env criado com configurações JWT
  • JWT_SECRET configurado
  • JWT_EXPIRES_IN configurado (24h)
  • JWT_ISSUER configurado
  • JWT_AUDIENCE configurado
  • JWT_PUBLIC_KEY_PEM configurado (chave pública RSA)

Middleware de Autenticação

  • Arquivo config/authMiddleware.js criado
  • Validação de token no header Authorization
  • Verificação de issuer
  • Verificação de audience
  • Algoritmo RS256 configurado
  • Fallback para HS256 (JWT_SECRET)

Rotas Protegidas

  • POST /library/add - requer token JWT
  • GET /library/user/:user_id - requer token JWT
  • POST /library/integration/payment-approved - pública (integração)

Segurança no Controller

  • addItem usa user_id do token (não do body)
  • getLibrary usa user_id do token (não dos params)

Dependências

  • jsonwebtoken instalado
  • dotenv instalado
  • package.json atualizado

Arquivos do Projeto

  • app.js - carrega dotenv
  • routes/libraryRoutes.js - rotas com middleware
  • controllers/libraryController.js - lógica com token
  • config/authMiddleware.js - validação JWT
  • .env - configurações

🚀 Como Testar

1. Iniciar o servidor

npm start

2. Testar sem token (deve retornar 401)

GET http://localhost:3005/library/user/1

3. Testar com token válido (deve retornar 200)

GET http://localhost:3005/library/user/1
Authorization: Bearer <seu_token_jwt>

4. Testar com token inválido (deve retornar 403)

GET http://localhost:3005/library/user/1
Authorization: Bearer token_invalido

📝 Observações

  • A rota /integration/payment-approved é pública pois é chamada por outros microsserviços
  • O user_id é extraído do token JWT para garantir segurança
  • A chave pública PEM está configurada para RS256