Fundamentos de auth y sesiones/JWT

Comprende autenticación y autorización en Node para implementar sesiones o JWT con validaciones y caducidad controlada.

Auth no es solo login: es identidad, permisos y trazabilidad.

Distinguir autenticación de autorización evita errores de diseño muy comunes.

JWT y sesiones tienen trade-offs reales en escalabilidad y revocación.

Meta: definir un flujo de acceso seguro y mantenible para APIs.

  • Primero demuestras quién eres, luego qué puedes hacer.
  • Autenticación: validar identidad.
  • Autorización: validar permisos por recurso.
  • Nunca asumas permisos por tener token válido.
  • Token pequeño, vida corta y firma fuerte.

Autenticación vs autorización

Primero demuestras quién eres, luego qué puedes hacer.

  • Autenticación: validar identidad.
  • Autorización: validar permisos por recurso.
  • Nunca asumas permisos por tener token válido.

JWT con caducidad y claims mínimos

Token pequeño, vida corta y firma fuerte.

Errores críticos de auth

Son frecuentes y explotables.

  • Guardar secretos en repositorio.
  • Tokens sin caducidad.
  • No invalidar sesión tras cambio de contraseña.
  • Responder mensajes de error que revelan demasiado.

Conexión con seguridad frontend

El cliente también forma parte del modelo de amenazas.

JavaScript
57

Fundamentos de auth y sesiones/JWT

Comprende autenticación y autorización en Node para implementar sesiones o JWT con validaciones y caducidad controlada.

Código del tema: session | jwt | middleware auth

📘 Teoría

Autenticación vs autorización

Primero demuestras quién eres, luego qué puedes hacer.

  • Autenticación: validar identidad.
  • Autorización: validar permisos por recurso.
  • Nunca asumas permisos por tener token válido.

JWT con caducidad y claims mínimos

Token pequeño, vida corta y firma fuerte.

Payload mínimo recomendado
const payload = { sub: user.id, role: user.role };
// exp corta + refresh strategy fuera del access token

Errores críticos de auth

Son frecuentes y explotables.

  • Guardar secretos en repositorio.
  • Tokens sin caducidad.
  • No invalidar sesión tras cambio de contraseña.
  • Responder mensajes de error que revelan demasiado.

Conexión con seguridad frontend

El cliente también forma parte del modelo de amenazas.

🧪 Aprende probando

Ejemplo Ejemplo guiado: flujo mínimo funcional Construye una versión simple y verifica salidas en consola.
Ejemplo Ejemplo guiado: iterar y registrar estado Patrón útil para depuración incremental.
Ejemplo Demo interactiva: mini laboratorio Interactúa con la UI y observa cambios en preview y consola.

🏁 Retos

Reto Reto 1: transformación controlada Crea una variable `resultado` transformando un valor de entrada y muéstrala en consola.
Reto Reto 2: función reutilizable Encapsula la lógica en una función para reutilizarla.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .