blewave-auth-middleware
v1.3.2
Published
Middleware de autenticação para o sistema de autenticação do Blewave
Downloads
22
Readme
🔐 Auth Middleware – Middleware de Autenticação JWT
Este projeto fornece um middleware de autenticação reutilizável para projetos Node.js que utilizam JWT (JSON Web Token) emitido por uma API de login centralizada.
Ideal para projetos distribuídos (como microserviços ou múltiplas APIs independentes) que compartilham autenticação por token.
📦 Instalação
✅ Com pacote privado no GitLab
Gere um token de acesso pessoal ou deploy token com os escopos:
read_apiread_package_registrywrite_package_registry(se for publicar)
Adicione ao seu projeto um arquivo
.npmrc:
@blewave:registry=https://gitlab.com/api/v4/projects/ID_DO_PROJETO/packages/npm/
//gitlab.com/api/v4/projects/ID_DO_PROJETO/packages/npm/:_authToken=SEU_TOKEN_AQUI- Instale o pacote:
npm install @blewave/auth-middleware🧩 Uso básico
const authenticateToken = require('@blewave/auth-middleware');
app.get('/rota-protegida', authenticateToken, (req, res) => {
res.json({ user: req.user });
});O middleware irá:
- Ler o token de
Authorization: Bearer <token> - Verificar e decodificar o JWT usando
JWT_SECRET - Preencher
req.usercom os dados contidos no token
🧾 Payload esperado no JWT
{
"sub": "user-id",
"email": "[email protected]",
"plan": "pro",
"subscription_status": "active",
"scope": "read:profile",
"aud": "app1",
"iss": "https://login.seudominio.com",
"iat": 1693580000,
"exp": 1693583600
}Campos como features, userConsumerAppStatus, name também são aceitos se presentes.
⚙️ Configuração esperada
No .env do projeto consumidor:
JWT_SECRET=sua_chave_secreta_ou_publicaPara algoritmos assimétricos (RS256), use JWT_PUBLIC_KEY.
🔐 Exemplo de verificação por plano
app.get('/admin-only', authenticateToken, (req, res) => {
if (req.user.plan !== 'enterprise') {
return res.status(403).json({ error: 'Acesso restrito' });
}
res.send('Bem-vindo à área restrita.');
});