¿Qué es un JWT? Estructura, claims y decodificación

Qué es un JWT

¿Qué es un JWT? Estructura, claims y un decodificador privado | We.Inc

JSON Web Tokens explicados: header, payload y firma, los siete claims registrados del RFC 7519, los riesgos de seguridad y un decodificador que nunca envía tu token a ningún sitio.

Un JWT (JSON Web Token) es una cadena compacta y segura para URLs formada por tres partes en base64url separadas por puntos: un header que indica el algoritmo, un payload con claims como sub y exp, y una firma. Cualquiera puede decodificar y leer el payload; solo la firma, comprobada con la clave correcta, demuestra que nadie lo ha modificado.

Nombres de claims registrados (RFC 7519, sección 4.1)

Pega un token en el decodificador de abajo para ver su header y su payload, con cada claim registrado explicado y cada marca de tiempo convertida en una fecha legible. La decodificación ocurre en el propio JavaScript de esta página, así que el token nunca se sube. Eso importa, porque un token activo es una llave a la cuenta de alguien.

Preguntas frecuentes

¿Es seguro decodificar un JWT en línea?

Solo si la decodificación ocurre en tu navegador. El token es una credencial: cualquiera que tenga uno válido puede usar la API como ese usuario hasta que expire. El decodificador de esta página funciona en local y no envía nada, pero con tokens de producción lo más seguro es acostumbrarse a decodificar solo tokens de prueba.

¿Está cifrado un JWT?

Un JWT firmado normal (un JWS) no lo está. Su payload solo está codificado en base64url, algo que cualquiera puede revertir. Existen tokens cifrados, los JWE, con cinco partes separadas por puntos en lugar de tres, pero la mayoría de los tokens de inicio de sesión y de API están firmados, no cifrados.

¿En qué formato están exp e iat?

NumericDate: segundos enteros desde 1970-01-01T00:00:00Z, sin contar segundos intercalares. Date.now() de JavaScript devuelve milisegundos, así que divide entre 1000 antes de comparar, un error muy habitual.

¿Guardo un JWT en localStorage o en una cookie?

Cualquier script que se ejecute en la página puede leer localStorage, así que un solo fallo de cross-site scripting puede robar el token. Una cookie HttpOnly, Secure y SameSite lo mantiene fuera del alcance de los scripts, a cambio de tener que gestionar CSRF. Muchos equipos eligen la cookie para las sesiones del navegador.

¿Puedo cerrar la sesión de un usuario con un JWT?

No por sí solo, porque el token sigue siendo válido hasta exp. Usa una expiración corta más refresh tokens que puedas revocar, o mantén una lista de bloqueo de valores jti para los tokens que deban morir antes.

Las tres partes

Algoritmos de firma

Errores que todavía provocan brechas

Decodificar y verificar en código

Decodificar un payload en JavaScript puro

Lee los claims sin verificarlos. Sirve para mostrar un nombre de usuario en la UI, nunca para decidir el acceso.

Verificar en el servidor con jose

jwtVerify comprueba la firma, exp y nbf, y con estas opciones también el emisor, la audiencia y el algoritmo permitido.

Decodificador de JWT privado

Pega un token para leer su header y su payload. La decodificación se hace en tu navegador; el token no se envía, no se guarda y no se registra.

Quién emitió el token

A quién se refiere el token, normalmente un id de usuario

Qué destinatarios deben aceptarlo

Rechazar a partir de este momento

Rechazar antes de este momento

Cuándo se creó el token

Un id único, útil para bloquear la reutilización

JWT

Cargar token de ejemplo

Borrar

Header

Payload

Firma (no se verifica aquí)

Claims explicados

Claim

Valor

Significado

Claim personalizado

Un JWT firmado tiene 3 partes separadas por puntos; este tiene {n}.

5 partes significa un JWE cifrado, que no se puede leer sin la clave.

La parte {n} no es JSON válido en base64url.

Expiró {v}

Válido hasta {v}

No es válido hasta {v}

alg es none: este token no tiene firma y debe rechazarse.

Decodificado en local. Nada sale de esta página.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio