Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
101 lines
2.8 KiB
Markdown
101 lines
2.8 KiB
Markdown
# JWT Authentication (NestJS)
|
|
|
|
**ID:** auth-jwt-nestjs
|
|
**Version:** 2.1.0
|
|
**Estado:** production
|
|
**Categoria:** authentication
|
|
**Ultima actualizacion:** 2026-01-04
|
|
|
|
---
|
|
|
|
## Descripcion
|
|
|
|
Modulo de autenticacion basado en JWT para aplicaciones NestJS. Incluye soporte para refresh tokens, guards personalizados, decoradores, y opcional soporte multi-tenant.
|
|
|
|
## Caracteristicas
|
|
|
|
- JWT con access y refresh tokens
|
|
- Guards de autenticacion (`@UseGuards(JwtAuthGuard)`)
|
|
- Decoradores personalizados (`@CurrentUser()`, `@Public()`)
|
|
- Soporte multi-tenant (tenant_id en claims)
|
|
- Rate limiting integrado para endpoints de login
|
|
- Blacklist de tokens (Redis)
|
|
- Password hashing con bcrypt
|
|
|
|
## Compatibilidad
|
|
|
|
| Tecnologia | Version Minima |
|
|
|------------|----------------|
|
|
| Node.js | 18+ |
|
|
| NestJS | 9.0+ |
|
|
| TypeScript | 5.0+ |
|
|
| PostgreSQL | 14+ |
|
|
| Redis | 6+ (opcional, para blacklist) |
|
|
|
|
## Instalacion Rapida
|
|
|
|
```bash
|
|
# 1. Dependencias
|
|
npm install @nestjs/jwt @nestjs/passport passport passport-jwt bcrypt
|
|
npm install -D @types/passport-jwt @types/bcrypt
|
|
|
|
# 2. Copiar modulo (desde proyecto de referencia)
|
|
# Gamilit: apps/backend/src/modules/auth/
|
|
# ERP-Core: backend/src/modules/auth/
|
|
```
|
|
|
|
## Estructura del Modulo
|
|
|
|
```
|
|
auth/
|
|
├── auth.module.ts # Modulo principal
|
|
├── auth.controller.ts # Endpoints: login, register, refresh
|
|
├── auth.service.ts # Logica de autenticacion
|
|
├── strategies/
|
|
│ ├── jwt.strategy.ts # Passport JWT strategy
|
|
│ └── local.strategy.ts # Passport Local strategy
|
|
├── guards/
|
|
│ ├── jwt-auth.guard.ts # Guard de JWT
|
|
│ └── roles.guard.ts # Guard de roles
|
|
├── decorators/
|
|
│ ├── current-user.decorator.ts # @CurrentUser()
|
|
│ └── public.decorator.ts # @Public()
|
|
├── dto/
|
|
│ ├── login.dto.ts
|
|
│ ├── register.dto.ts
|
|
│ └── refresh-token.dto.ts
|
|
└── interfaces/
|
|
└── jwt-payload.interface.ts
|
|
```
|
|
|
|
## Proyectos que lo Usan
|
|
|
|
| Proyecto | Version | Notas |
|
|
|----------|---------|-------|
|
|
| gamilit | 2.1.0 | Con multi-tenant |
|
|
| erp-core | 2.1.0 | Con multi-tenant |
|
|
| trading-platform | 2.1.0 | Single tenant |
|
|
| betting-analytics | 2.1.0 | Single tenant |
|
|
| inmobiliaria-analytics | 2.1.0 | Single tenant |
|
|
| platform_marketing_content | 2.1.0 | Single tenant |
|
|
|
|
## Modulos Relacionados
|
|
|
|
- [multi-tenant-auth](../multi-tenant-auth/) - Extension para multi-tenancy completo
|
|
- [roles-permissions](../../user-management/roles-permissions/) - RBAC
|
|
- [rate-limiting](../../api-patterns/rate-limiting/) - Proteccion de endpoints
|
|
|
|
---
|
|
|
|
## Referencias de Implementacion
|
|
|
|
| Proyecto | Ubicacion |
|
|
|----------|-----------|
|
|
| gamilit | `projects/gamilit/apps/backend/src/modules/auth/` |
|
|
| erp-core | `projects/erp-core/backend/src/modules/auth/` |
|
|
|
|
---
|
|
|
|
**Mantenedor:** @PERFIL_BACKEND
|
|
**Fuente principal:** gamilit
|