2.1 KiB
2.1 KiB
Checklist - Microsserviço Biblioteca de Usuário
✅ Implementação do Token JWT
- Arquivo
.envcriado com configurações JWT JWT_SECRETconfiguradoJWT_EXPIRES_INconfigurado (24h)JWT_ISSUERconfiguradoJWT_AUDIENCEconfiguradoJWT_PUBLIC_KEY_PEMconfigurado (chave pública RSA)
✅ Middleware de Autenticação
- Arquivo
config/authMiddleware.jscriado - 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 JWTGET /library/user/:user_id- requer token JWTPOST /library/integration/payment-approved- pública (integração)
✅ Segurança no Controller
addItemusa user_id do token (não do body)getLibraryusa user_id do token (não dos params)
✅ Dependências
jsonwebtokeninstaladodotenvinstaladopackage.jsonatualizado
✅ Arquivos do Projeto
app.js- carrega dotenvroutes/libraryRoutes.js- rotas com middlewarecontrollers/libraryController.js- lógica com tokenconfig/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