- 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
Implementación de JSON Web Token para autenticación en NestJS
Clase 28 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
Contar con un sistema de login confiable es esencial, pero no suficiente por sí solo. Para proteger los endpoints y permitir un acceso autorizado en aplicaciones web, móviles o de escritorio, la implementación de JSON Web Token (JWT) es clave. A continuación, verás cómo se realiza esta integración, por qué es tan relevante y cuáles son las mejores prácticas para asegurar tus datos.
¿Por qué usar JSON Web Token para autenticación y autorización?
El login tradicional basado en cookies solo es útil para aplicaciones web, ya que sus métodos de sesión no funcionan en entornos móviles o de escritorio. Por eso, JWT se convierte en la modalidad estándar, ya que facilita autenticación multiplataforma y permite conectividad segura con diversos sistemas. Usar JWT garantiza flexibilidad y escalabilidad, integrándose perfectamente con arquitecturas modernas.
¿Cómo funciona un JSON Web Token y qué información contiene?
Un JSON Web Token está compuesto usualmente por tres partes: payload, encabezado y firma. Dentro del payload es común encontrar identificadores como el sub (ID del usuario), fechas de expiración y, en algunos ejemplos, roles o nombre de usuario. Sin embargo, no se recomienda almacenar información sensible como emails o privilegios de administrador, ya que cualquiera con acceso al token puede descifrar su contenido. Lo esencial es incluir únicamente un identificador (primary key) y dejar los datos sensibles fuera del token, consultándolos solo desde la base de datos cuando sea necesario.
- La firma es generada con un secreto al que solo el backend debe acceder.
- Si alguien intenta verificar la autenticidad del token sin el secreto correcto, la firma será inválida.
- Solo el backend legítimo puede validar si el token es original y seguro.
¿Cuáles son los pasos clave para implementar JWT en NestJS y proteger las rutas?
- Instalación de dependencias: Es necesario instalar paquetes especializados como nestjs-jwt y passport-jwt.
- Configuración en el módulo de autenticación: Se importa JWT Module al módulo de autenticación, definiendo el secreto y tiempo de expiración del token (ejemplo: seis días).
- Creación de un método para generar el token: Se desarrolla un método generateToken, el cual recibe el usuario autenticado y genera el JWT usando solo el sub.
- Adaptación del endpoint de login: El endpoint retorna tanto la información permitida del usuario como el access token recién generado.
- Protección avanzada del secreto: En vez de colocar el secreto directamente en el código, se emplea una variable de ambiente tipo
JWT_SECRET, protegida y fuera del alcance público. Se recomienda especificar en archivos ejemplo (.env.example) las variables requeridas, sin exponer su valor.
¿Qué buenas prácticas existen al manejar el secreto y la validez del token?
- Nunca expongas el secreto en el código fuente.
- Solo personal autorizado o procesos internos deben conocer la clave usada para firmar los tokens.
- Manejar el secreto mediante variables de ambiente asegura que el valor real no se incluya en los repositorios ni archivos compartidos.
- Renovar el token periódicamente y usar estrategias de refresh puede fortalecer la seguridad.
¿Ya utilizas JWT en tus proyectos? Comparte tus experiencias o dudas en los comentarios y sigue aprendiendo sobre la protección de tus aplicaciones.