# Decodificador de JWT

URL: https://byshahid.com/es/tools/jwt-decoder/
Author: Muhammad Shahid (https://byshahid.com/)
Herramienta gratis · funciona en tu navegador

Pega un JSON Web Token para leer su header y su payload, y ver cuándo se emitió y cuándo caduca.

**Respuesta rápida:** Un JWT tiene tres partes separadas por puntos: un header, un payload y una firma. Las dos primeras son JSON codificado en Base64URL, así que cualquiera puede decodificarlas y leerlas; solo la firma demuestra que el token es auténtico. Esta herramienta decodifica el header y el payload y convierte exp, iat y nbf en fechas legibles. No verifica la firma.

## Cómo usarla

1. **Pega el token.** Copia el JWT de tu app, de un header Authorization o de una cookie y pégalo en el cuadro.
2. **Lee las partes.** El header muestra el algoritmo; el payload muestra los claims, como el id de usuario y los roles.
3. **Revisa las fechas.** La herramienta muestra cuándo se emitió el token, cuándo caduca y si ya ha caducado.

## Ejemplo

Un JWT firmado para un usuario con rol admin, válido durante una hora:

Entrada:

```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzQyIiwibmFtZSI6IlNhcmEgTGV2aSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc5MzUyMDAwMCwiZXhwIjoxNzkzNTIzNjAwfQ.1R3nQ-xp3SDmEZSSr355txmajhu1r1JjO863Li_Cam0
```

Salida:

```
Header
{
  "alg": "HS256",
  "typ": "JWT"
}

Payload
{
  "sub": "user_42",
  "name": "Sara Levi",
  "role": "admin",
  "iat": 1793520000,
  "exp": 1793523600
}

Issued (iat):  2026-11-01T08:00:00Z
Expires (exp): 2026-11-01T09:00:00Z
```

## Errores comunes y cómo solucionarlos

- **El token no se decodifica**: Copia solo el token. Quita el prefijo "Bearer ", las comillas y los saltos de línea, y comprueba que tiene exactamente dos puntos.
- **jwt expired (TokenExpiredError)**: La hora exp ya ha pasado. Obtén un nuevo access token con el refresh token; no alargues sin más la validez de los tokens.
- **invalid signature**: El token se firmó con un secreto o clave distinto del que usa el servidor, a menudo porque los entornos o servidores tienen secretos diferentes. Usa la misma clave en todos los sitios que verifican tokens.
- **jwt not active (NotBeforeError)**: La hora nbf todavía está en el futuro, normalmente porque los relojes de los servidores no coinciden. Sincronízalos con NTP o permite unos segundos de tolerancia.

## Preguntas frecuentes

### ¿Es seguro pegar aquí mi JWT?

Sí. La decodificación se hace por completo en tu navegador y no se envía nada a un servidor. Aun así, trata los tokens de producción como contraseñas y no los compartas.

### ¿Esta herramienta verifica la firma del JWT?

No. Verificar una firma requiere el secreto o la clave pública, que deben estar en tu servidor. Decodificar solo lee el header y el payload.

### ¿Por qué cualquiera puede leer el payload de mi JWT?

El payload solo está codificado, no cifrado. Nunca pongas contraseñas ni secretos en un JWT.

### ¿Qué significan exp, iat y nbf?

exp es cuándo caduca el token, iat cuándo se emitió y nbf el momento antes del cual no es válido. Todos son timestamps Unix en segundos.

### ¿Por qué los usuarios se desconectan al azar con JWT?

Normalmente por refrescos simultáneos entre peticiones o pestañas, diferencias de reloj, la configuración de cookies o secretos distintos entre servidores.

### ¿Qué diferencia hay entre JWS y JWE?

Un JWS está firmado pero se puede leer, y así son la mayoría de los JWT. Un JWE está cifrado, por lo que su payload no se puede leer sin la clave. Esta herramienta solo decodifica tokens firmados.

### ¿Qué es alg en el header de un JWT?

El algoritmo de firma, como HS256 (un secreto compartido) o RS256 y ES256 (un par de claves privada y pública). Los servidores solo deben aceptar los algoritmos que esperan.

### ¿Cuánto tiempo debe ser válido un JWT?

Los access tokens suelen durar poco, de minutos a una hora, con un refresh token de mayor duración para obtener otros nuevos. Los tokens cortos limitan el daño si uno se filtra.

### ¿Dónde guardar un JWT en el navegador?

Muchas apps guardan el refresh token en una cookie httpOnly y Secure y el access token de corta duración en memoria, lo que limita lo que puede leer un script malicioso.

### ¿Puedo editar el payload y reutilizar el token?

No. Cambiar cualquier parte invalida la firma, y un servidor bien configurado rechazará el token.

## Relacionado

- [Por qué los usuarios se desconectan al azar y cómo arreglar los errores de sesión con JWT](https://byshahid.com/engineering/jwt-random-logouts-fix/)
- [Codificador y decodificador Base64](https://byshahid.com/es/tools/base64-encoder-decoder/)
- [Conversor de timestamp Unix](https://byshahid.com/es/tools/unix-timestamp-converter/)

## Fuentes

- [RFC 7519: JSON Web Token](https://www.rfc-editor.org/info/rfc7519)
