Contenido del curso
Protección de contraseñas
Passport y JSON Web Tokens
- 7

Implementación de Autenticación con Passport.js y Estrategia Local
20:46 min - 8

Autenticación con JSON Web Tokens: Creación y Verificación
06:42 min - 9

Firma y Verificación de JSON Web Tokens con JavaScript
10:59 min - 10

Generación y Firma de Tokens JWT en APIs Backend
06:21 min - 11

Protección de Rutas con JWT y Passport en Node.js
12:20 min - 12

Gestión de Roles y Permisos en API Restful
17:52 min - 13

Consulta de Órdenes de Compra Usando Token de Sesión en Node.js
12:08 min - 14

Gestión de Autenticación y Autorización en Aplicaciones Web
05:29 min
Envío de emails con Node.js
Recuperación de contraseñas
Despliegue a producción
Próximos pasos
Autenticación vs autorización en Node.js
Resumen
La diferencia entre autenticación y autorización es una de las bases para construir aplicaciones seguras en Node.js. Una verifica quién eres, la otra define qué puedes hacer. Si trabajas con APIs, dominar estos dos conceptos te permite proteger endpoints y escalar el acceso de tus usuarios sin perder control.
¿Qué diferencia hay entre autenticación y autorización?
Aunque suelen mencionarse juntas, son capas distintas con responsabilidades separadas dentro de tu aplicación.
La autenticación se encarga de verificar tu identidad. Tomas las credenciales del usuario, las comparas contra la base de datos y, si coinciden, le permites el ingreso. La autorización, en cambio, gestiona los permisos: decide a qué partes del sistema puede acceder ese usuario una vez dentro.
¿Qué es la autenticación? Es el proceso de validar credenciales (usuario y contraseña) para confirmar quién eres. Si los datos coinciden con los registrados, obtienes acceso al sistema.
¿Qué es la autorización? Es la gestión de permisos que define qué endpoints o recursos puede usar cada rol. Un administrador abre todo, un usuario regular solo lo que le corresponde.
¿Cómo funcionan los guardianes y las llaves en una API?
La analogía más clara es pensar en guardianes y llaves. Te ayuda a visualizar cómo fluye el acceso en un sistema real.
Imagina un guardián parado en la puerta de tu aplicación. Cuando un usuario llega, le pide credenciales. El guardián consulta la base de datos, revisa si existen, si coinciden y si no han expirado. Si todo está en orden, te entrega una llave.
Esa llave es la que abre habitaciones dentro del sistema. Algunas puertas pueden ser públicas y no requieren llave, pero otras, como el endpoint para crear productos, sí exigen credenciales válidas.
¿Qué define los permisos de cada usuario?
No todas las llaves abren las mismas puertas. Aquí entra la autorización.
- La llave de administrador abre cualquier cosa: crear recursos, cambiar contraseñas, acceder a cualquier nivel.
- La llave de un usuario regular tiene privilegios limitados, por ejemplo, acceder solo al primer nivel del sistema.
- Algunos endpoints permanecen públicos y no requieren ninguna llave.
Cada rol recibe una llave distinta según los permisos que el sistema le otorgue. Esa diferenciación es la que protege la información sensible.
¿Por qué usar JSON Web Token en Node.js?
Para implementar esta lógica en tu proyecto vas a usar JSON Web Token (JWT), una tecnología que funciona de modo stateless.
Stateless significa que el backend no guarda una sesión activa del usuario. Toda la información de acceso viaja dentro del token, esa llave que el guardián entrega tras autenticar las credenciales. El servidor no necesita recordar quién está conectado: lee el token en cada petición y decide.
¿Por qué JWT es stateless y por qué importa? Porque la sesión vive en el token, no en el servidor. Eso te permite escalar la aplicación a sistemas distribuidos sin sincronizar sesiones entre instancias.
Esta característica es clave cuando piensas en crecimiento. Si mañana necesitas distribuir tu aplicación entre varios servidores, JWT te permite mantener el login funcionando sin que cada nodo cargue con el estado de las sesiones.
Conceptos y habilidades clave de la clase
Estos son los puntos técnicos que conviene tener claros antes de pasar al código.
- Autenticación: verificación de identidad mediante credenciales contra la base de datos [0:10].
- Autorización: gestión de permisos sobre endpoints según rol [0:25].
- Endpoints protegidos: rutas como crear productos que exigen credenciales válidas [0:55].
- Roles y privilegios: diferenciación entre administrador y usuarios con menos accesos [1:40].
- JSON Web Token (JWT): tecnología para manejar sesiones sin estado [2:05].
- Stateless: el servidor no almacena sesión, toda la información viaja en el token [2:15].
- Sistemas distribuidos: arquitectura que se beneficia del enfoque stateless para escalar [2:30].
Con esta base ya puedes separar las dos capas en tu proyecto Node y entender qué responsabilidad cumple cada una. ¿Cómo estás manejando hoy la autenticación en tus APIs? Cuéntalo en los comentarios.