workspace-v1/shared/modules/auth
rckrdmrd cb4c0681d3 feat(workspace): Add new projects and update architecture
New projects created:
- michangarrito (marketplace mobile)
- template-saas (SaaS template)
- clinica-dental (dental ERP)
- clinica-veterinaria (veterinary ERP)

Architecture updates:
- Move catalog from core/ to shared/
- Add MCP servers structure and templates
- Add git management scripts
- Update SUBREPOSITORIOS.md with 15 new repos
- Update .gitignore for new projects

Repository infrastructure:
- 4 main repositories
- 11 subrepositorios
- Gitea remotes configured

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 04:43:28 -06:00
..
README.md feat(workspace): Add new projects and update architecture 2026-01-07 04:43:28 -06:00

Auth - Core Module

Modulo: shared/modules/auth/ Version: 0.1.0 Fecha: 2026-01-03 Owner: Backend-Agent Estado: desarrollo


Descripcion

Modulo de autenticacion compartido que provee guards, decorators y utilidades JWT para proyectos NestJS. Complementa el catalogo shared/catalog/auth/ con codigo listo para importar.


Instalacion

Prerequisitos

npm install @nestjs/jwt @nestjs/passport passport-jwt bcrypt
npm install -D @types/passport-jwt @types/bcrypt

Configuracion de Paths

{
  "compilerOptions": {
    "paths": {
      "@shared/modules/*": ["../../shared/modules/*"]
    }
  }
}

API Publica (Planificada)

Guards

Guard Descripcion Uso
JwtAuthGuard Protege rutas con JWT @UseGuards(JwtAuthGuard)
RolesGuard Verifica roles de usuario @UseGuards(RolesGuard)
PermissionsGuard Verifica permisos @UseGuards(PermissionsGuard)

Decorators

Decorator Descripcion Ejemplo
@CurrentUser() Extrae usuario actual @CurrentUser() user: User
@Roles() Define roles requeridos @Roles('admin', 'editor')
@Public() Marca ruta como publica @Public()

Servicios

Servicio Descripcion
TokenService Generacion/validacion JWT
PasswordService Hashing con bcrypt
SessionService Gestion de sesiones

Ejemplos de Uso

Ejemplo 1: Proteger Controller

import { JwtAuthGuard, CurrentUser, Roles } from '@shared/modules/auth';

@Controller('users')
@UseGuards(JwtAuthGuard)
export class UsersController {
  @Get('profile')
  getProfile(@CurrentUser() user: User) {
    return user;
  }

  @Get('admin')
  @Roles('admin')
  @UseGuards(RolesGuard)
  adminOnly() {
    return { message: 'Admin access' };
  }
}

Ejemplo 2: Hash de Password

import { PasswordService } from '@shared/modules/auth';

const passwordService = new PasswordService();

// Hash
const hash = await passwordService.hash('myPassword123');

// Verify
const isValid = await passwordService.verify('myPassword123', hash);

Dependencias

Internas

Modulo Uso
@shared/modules/utils Validaciones

Externas (npm)

Paquete Version Uso
@nestjs/jwt ^10.0 Tokens JWT
@nestjs/passport ^10.0 Estrategias auth
passport-jwt ^4.0 Estrategia JWT
bcrypt ^5.0 Hashing passwords

Este modulo (shared/modules/auth/) provee codigo importable.

El catalogo (shared/catalog/auth/) provee documentacion y referencia para implementaciones completas.

Usar modules/auth cuando:
  - Necesitas guards/decorators listos
  - Proyecto ya tiene auth y solo extiende

Usar catalog/auth cuando:
  - Implementas auth desde cero
  - Necesitas documentacion completa
  - Requieres DDL y estructura de tablas

Estado Actual

- [ ] JwtAuthGuard implementado
- [ ] RolesGuard implementado
- [ ] CurrentUser decorator
- [ ] Roles decorator
- [ ] Public decorator
- [ ] TokenService
- [ ] PasswordService
- [ ] SessionService
- [ ] Tests unitarios
- [ ] Documentacion completa

Changelog

v0.1.0 (2026-01-03)

  • Estructura inicial
  • README con planificacion

Modulo: shared/modules/auth/ | Owner: Backend-Agent | Estado: desarrollo