- 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
Automatización de user ID en APIs con JWT
Clase 30 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
Optimizar la seguridad y eficiencia en una API requiere comprender cómo automatizar la asociación del contenido creado con el usuario autenticado usando el JSON Web Token (JWT). En este resumen, te mostramos cómo evitar solicitar el user ID manualmente al crear posts y aprovechar la lógica del backend para mantener la integridad, protegiendo tus recursos de forma automatizada y sencilla.
¿Por qué prescindir del user ID en el DTO al crear un post?
Eliminar el envío manual del user ID en el DTO (Data Transfer Object) al crear un artículo es una práctica robusta. El JWT ya contiene el identificador del usuario. Así:
- El backend identifica el usuario desde el token automáticamente.
- Evita intentos de suplantar identidades y mejora la seguridad.
- Simplifica la lógica interna, pues cada sesión controla sólo los posts del usuario activo.
No tiene sentido permitir que cualquier usuario envíe posts a nombre de otros. Salvo que existan roles administrativos, cada quien publica desde su sesión.
¿Cómo extraer el user ID desde el token en el backend?
El JWT se firma con el ID del usuario en la propiedad sub. Cuando llega una petición protegida:
- El backend verifica el JWT y extrae el user ID.
- El control sobre el usuario activo se garantiza en toda la sesión.
- No se solicita explícitamente el user ID en el body del request.
Esto se logra desde el controlador del endpoint, integrando el request en los parámetros del método correspondiente, y asegurando el uso correcto del AuthGrant y del método validate para extraer el payload.
¿Qué ventajas tiene tipar el payload y mantener consistencia en el token?
Crear un modelo para el payload del JWT, por ejemplo, con una carpeta models y un archivo dedicado, permite:
- Mantener el tipo de datos del payload en toda la app.
- Facilitar la gestión de futuras propiedades, como email o roles.
- Reutilizar el mismo shape del payload en la firma y lectura del token.
Así, el user.sub siempre representará el ID del usuario y se manejará de forma coherente.
¿Cómo se automatiza la asociación en la lógica de creación del post?
Al procesar la creación del post:
- El backend utiliza el user ID extraído del JWT como segundo parámetro y lo enlaza al nuevo post.
- El usuario autenticado en la sesión será siempre el propietario del post creado.
- No se requiere pedir datos adicionales para enlazar correctamente el contenido.
Un ejemplo práctico: si el usuario cinco se autentica y usa su token, los nuevos artículos siempre se asignarán a su ID, evitando errores y mejorando la experiencia.
¿Te gustaría intercambiar experiencias o compartir cómo gestionas la seguridad de usuarios en tus APIs? ¡Tu participación motiva a otros a seguir aprendiendo y mejorando sus proyectos!