# Autenticación (Sesión vs JWT)

**URL:** <https://www.yodev.dev/t/authentication-session-vs-jwt/674>\
**Category:** Desarrollo\
**Tags:** jwt, authentication\
**Created:** [27 Octubre, 2025 16:42 UTC](https://www.yodev.dev/t/authentication-session-vs-jwt/674 "2025-10-27T16:42:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Karla](https://yyz1.discourse-cdn.com/flex009/user_avatar/www.yodev.dev/karla/32/26_2.png) [@Karla](https://www.yodev.dev/u/Karla)\
**Post date:** [27 Octubre, 2025 16:42 UTC](https://www.yodev.dev/t/authentication-session-vs-jwt/674/1 "2025-10-27T16:42:10Z")

</div>

# [Autenticación (Sesión vs JWT)](https://substack.com/app-link/post?publication_id=4458464&post_id=177086976&utm_source=post-email-title&utm_campaign=email-post-title&isFreemail=true&r=6lm1pt&token=eyJ1c2VyX2lkIjozOTkwOTc2NDksInBvc3RfaWQiOjE3NzA4Njk3NiwiaWF0IjoxNzYxNTY3MjQ0LCJleHAiOjE3NjQxNTkyNDQsImlzcyI6InB1Yi00NDU4NDY0Iiwic3ViIjoicG9zdC1yZWFjdGlvbiJ9.RjYKI7xLUHQ4gn8922qCIOwLyWzdyW1mF8rZbAEOjOw)

### Explicado lo más simple posible… pero no más.

[Stephane Moreau | Substack](https://substack.com/@stephanemoreau))

## Autenticación vs Autorización

**Autenticación** y **Autorización** resuelven dos preguntas fundamentales de seguridad en cualquier sistema:

- **Autenticación** : “¿Quién eres?” - Probar y verificar la identidad del usuario
- **Autorización** : “¿Qué estás autorizado a hacer?” - Determinar permisos y derechos de acceso

Después de que un usuario inicia sesión una vez, el sistema necesita una forma de “recordarlos” a través de múltiples solicitudes sin pedir credenciales repetidamente. Hay dos enfoques fundamentalmente diferentes para mantener el estado de inicio de sesión:

- Autenticación basada en sesiones
- Autenticación basada en JWT

### Autenticación basada en sesiones

[![550x278.7671232876712](https://canada1.discourse-cdn.com/flex009/uploads/inovacon/original/1X/261da708ec4162bffa3fe1b061d8b37516437d92.png)](https://substack.com/redirect/73e0ce84-d212-4c67-8f09-14e9b980be1c?j=eyJ1IjoiNmxtMXB0In0.B16g-8gjf3SSj6Ss9Wzx5CUGKULSg7C7w1iVO3NxOLc)

**Característica clave** : El servidor almacena el estado de la sesión, lo que lo hace estado (stateful). El ID de sesión es solo una clave de referencia.

**Componentes:**

- **Cookie** : Contiene el ID de sesión (cadena pequeña y opaca)
- **Almacenamiento de sesión** : Almacenamiento centralizado (Redis, base de datos, Memcached)
- **Datos de sesión** : ID de usuario, expiración, metadatos almacenados en el servidor

### Autenticación basada en JWT

[![550x390.7894736842105](https://canada1.discourse-cdn.com/flex009/uploads/inovacon/original/1X/a3eeb5043c93d9f0f8714eb452df4095a0351cf6.png)](https://substack.com/redirect/cb22dd3e-29b9-46c9-823b-5e0d0d77233e?j=eyJ1IjoiNmxtMXB0In0.B16g-8gjf3SSj6Ss9Wzx5CUGKULSg7C7w1iVO3NxOLc)

**Característica clave** : No hay almacenamiento del lado del servidor, lo que lo hace sin estado (stateless). Todos los datos están en el token mismo.

**Estructura del JWT (tres partes separadas por puntos):**

```auto
header.payload.signature

Ejemplo:
eyJhbGc... . eyJ1c2Vy... . SflKxwRJ...
[algoritmo] [datos de usuario] [firma]

```

**Algoritmos de firma:**

- **HMAC (HS256)**: Simétrico - misma clave para firmar y verificar (más simple, más rápido)
- **RSA/ECDSA** : Asimétrico - clave privada firma, clave pública verifica (más seguro para sistemas distribuidos)

**Patrón de actualización de token** (Mejor práctica para JWT)

```auto
Token de acceso (de corta duración: 15 min) ────┐
                                       ├──▶ Solicitudes regulares a la API
Token de refresco (de larga duración: 7 días) ────┘
         │
         └──▶ Solo enviado al endpoint /refresh cuando el token de acceso expira

```

## Ventajas y desventajas

[![550x176.40796703296704](https://canada1.discourse-cdn.com/flex009/uploads/inovacon/original/1X/7179e7b1855e611a7f94475780f66becf4b344c0.jpeg)](https://substack.com/redirect/51d37b9a-3585-4c3c-b82e-61fa5781fcfc?j=eyJ1IjoiNmxtMXB0In0.B16g-8gjf3SSj6Ss9Wzx5CUGKULSg7C7w1iVO3NxOLc)
