Sistema backend robusto para autenticación de usuarios con JWT, construido con arquitectura limpia y buenas prácticas de TypeScript.
- Node.js + Express - Servidor HTTP
- TypeScript - Tipado estático
- MongoDB - Base de datos NoSQL
- Mongoose - ODM para MongoDB
- JWT - Autenticación stateless
- Bcrypt - Hash de contraseñas
- Env-var - Validación de variables de entorno
- Patrón Repository - Separación clara de responsabilidades
- DTOs - Validación de datos de entrada
- Clean Architecture - Capas bien definidas
src/
├── config/ # Configuraciones y adaptadores
├── data/ # Acceso a datos (MongoDB)
├── domain/ # Lógica de negocio
│ ├── dtos/ # Data Transfer Objects
│ ├── entities/ # Entidades del dominio
│ └── use-cases/ # Casos de uso
├── infraestructure/# Implementaciones concretas
├── presentation/ # Controladores y rutas
└── app.ts # Punto de entrada
-
Autenticación JWT:
- Generación y validación de tokens
- Middleware de autorización
- Protección de rutas sensibles
-
Seguridad Robustea:
- Hashing de contraseñas con bcrypt
- Validación estricta de variables de entorno
- Manejo centralizado de errores
-
Arquitectura Escalable:
- Separación clara entre capas
- Fácil sustitución de componentes
- Inversión de dependencias
-
Clonar repositorio:
git clone https://github.com/tu-usuario/node-auth.git cd node-auth
-
Instalar dependencias:
npm install
-
Configurar variables de entorno (crear .env):
PORT=3100 MONGO_URL=mongodb://localhost:27017 MONGO_DB_NAME=auth_db JWT_SECRET=tu_super_secreto
-
Configurar variables de entorno (crear .env):
npm run dev
Pull requests son bienvenidos. Para cambios importantes, abre primero un issue.