- 1

Instalación y configuración inicial de NestJS para APIs
06:28 - 2

Instalación del CLI de NestJS y primer proyecto con API
11:29 - 3

Creación de endpoints dinámicos para consultar usuarios en NestJS
20:23 - 4

Operaciones CRUD en APIs REST con Postman
23:37 - 5

Método PUT para actualizar usuarios con ID automático
19:42 - 6

Códigos de estado HTTP y manejo de errores en APIs con NestJS
16:07 - 7

DTOs y validación automática de datos en APIs con NestJS
19:31 - 8

Patrón de servicios e inyección de dependencias en NestJS
25:09 - 9

Configuración de variables de entorno en NestJS
20:44 - 10

Creación y organización de módulos en NestJS para aplicaciones escalables
12:26 quiz de Fundamentos y Primer CRUD
Configuración de autenticación con Passport en NestJS
Clase 26 de 35 • Curso de Backend con NestJS
Contenido del curso
- 11

Configuración de PostgreSQL con Docker y Docker Compose
16:08 - 12

Configuración de PostgreSQL con TypeORM en aplicaciones NestJS
12:17 - 13

Creación de entidades ORM con decoradores en TypeScript
09:17 - 14

Implementación del Repository Pattern con TypeORM en NestJS
29:55 - 15

Relaciones uno a uno entre usuarios y perfiles en PostgreSQL
17:00 - 16

Actualización de DTOs con mapped types en NestJS para perfil y usuario
38:56 - 17

Generación automática de módulos CRUD con NestJS y AI
25:34 - 18

Relaciones uno a muchos con TypeORM en NestJS
17:56 - 19

Creación de entidad Category con relaciones many-to-many en NestJS
15:28 - 20

Relaciones many-to-many con TypeORM y validación de arrays
17:40 - 21

Reutilización de servicios entre módulos en NestJS
09:04 - 22

Configuración de migraciones de base de datos con TypeORM
23:01 - 23

Migraciones de base de datos sin pérdida de información
20:46 quiz de Base de Datos y Persistencia con TypeORM
- 24

Cómo proteger contraseñas con hashing usando Bcrypt en NestJS
10:15 - 25

Serialización de datos para excluir campos sensibles en APIs
04:13 - 26

Configuración de autenticación con Passport en NestJS
19:16 - 27

Implementación de endpoint de login con Node.js y NestJS
09:09 - 28

Implementación de JSON Web Token para autenticación en NestJS
16:15 - 29

Protección de endpoints con JWT guards en NestJS
11:34 - 30

Automatización de user ID en APIs con JWT
11:48 quiz de Autenticación y Autorización
- 31

Integración del SDK de OpenAI en Node.js para automatizar contenido
28:26 - 32

Documentación automática de APIs con Swagger en NestJS
15:59 - 33

Preparar una API Node.js para producción: seguridad y despliegue
10:46 - 34

Desplegar aplicación Node.js a producción con Railway y PostgreSQL
21:11 - 35

Desarrollo de API REST escalable con NestJS en producción
02:36
¿Quieres proteger el acceso y personalizar funcionalidades en tu app? Aquí aprenderás a implementar autenticación en NestJS con Passport y una estrategia local usando email y password, una decisión clave para proyectos modernos con Node.js.
¿Cómo protege el sistema a los usuarios durante el login?
La contraseña de los usuarios ya está protegida y se excluye de las respuestas, preparando el terreno para implementar el login. Esto te permite restringir funciones como crear posts sólo a usuarios autenticados, mejorando la seguridad y la administración de permisos desde el principio.
¿Qué es Passport y por qué es útil en NestJS?
Passport es una librería popular en Node para autenticar usuarios. Ofrece numerosas strategies (estrategias), por ejemplo: - Local: usuario y contraseña. - Facebook, Twitter, Google: integración con redes sociales. - JWT: sesiones y autenticación basada en tokens.
NestJS tiene un paquete que facilita esta integración. El proceso inicia instalando Passport, la estrategia local y los types necesarios mediante la terminal, simplificando la gestión de autenticación en tu proyecto.
¿Cómo se estructura el módulo de autenticación y el módulo de usuarios?
- Crea un módulo específico para autenticación (auth module) y un servicio relacionado.
- Usa el ya existente módulo y servicio de usuarios (users module y user service), solo agregando un método
getUserByEmailpara buscar usuarios por email. - Es buena práctica exponer servicios en
exportspara que otros módulos los puedan importar adecuadamente. - El auth module debe importar explícitamente el user module para usar sus servicios exportados, asegurando así la comunicación efectiva entre módulos.
¿Cómo maneja la seguridad la validación de usuarios y contraseñas?
El método esencial es validateUser, que: - Recibe email y contraseña en texto claro, como siempre hace el usuario. - Busca el usuario por email usando getUserByEmail. - Aplica una excepción Unauthorized si el usuario no existe, evitando brindar detalles que puedan ayudar a atacantes (por ejemplo, evitando decir “usuario no encontrado”). - Compara contraseñas usando hashing y sólo retorna el usuario autenticado (sin password, gracias al exclude del repository).
Así, la validación se concentra en el método y se evitan filtraciones de información sensible ante intentos de acceso indebido.
¿Qué adapta la estrategia local de Passport para usar email en vez de username?
Por defecto, Passport espera el campo username. Para ajustarlo: - Crea una carpeta strategies y la clase LocalStrategy. - Configura el campo principal como email en el strategy. - Especifica el campo de la contraseña como password. - Importa cada strategy como provider en el auth module y asígnale un nombre (ejemplo, 'local') para buenas prácticas. - Integra también PassportModule desde NestJS entre las importaciones del auth module.
Esto permite que Passport trabaje de acuerdo a las necesidades reales de la app.
¿Cómo se expone el endpoint de login para completar la autenticación?
Una vez que la autenticación está lista, sólo falta exponer un endpoint en el auth controller. Así, mediante una petición con email y password, el sistema utiliza toda la configuración y seguridad explicada para iniciar sesión.
¿Te gustaría comentar cómo te ha funcionado esta configuración de autenticación o qué dudas te surgen al adaptar modularidad y Passport? Tu experiencia puede aportar mucho a otros desarrolladores.