Cómo decodificar un JWT
- Pega el JSON Web Token completo en la caja de arriba, las tres partes separadas por puntos (
header.payload.signature), exactamente como lo tiene tu app, la respuesta de tu API o la cookie de tu navegador. - Haz clic en Decodificar JWT, el header y el payload aparecen instantáneamente como JSON con formato, justo debajo, junto con una nota en lenguaje sencillo sobre la caducidad.
- Haz clic en Copiar al portapapeles para obtener el resultado, o pega un token distinto y vuelve a ejecutarlo.
Sin archivo que elegir, sin librería que importar en un script improvisado, solo pega y lee.
Por qué decodificar un JWT
Los JSON Web Tokens están por todas partes en las apps web y móviles modernas: una cabecera Authorization: Bearer <token> en una llamada a la API, una cookie de sesión, un token de acceso o ID de OAuth/OIDC, un ticket de inicio de sesión único pasado entre servicios. Un JWT parece un blob opaco de galimatías, pero en realidad son solo tres segmentos codificados en Base64URL pegados con puntos, un header que describe el algoritmo de firma, un payload de claims (para quién es el token, qué concede, cuándo caduca) y una firma que se supone que prueba que los dos primeros no han sido alterados.
Los desarrolladores recurren a un decodificador de JWT constantemente y por razones muy comunes: confirmar que una API realmente emitió los roles/scopes que esperas, comprobar por qué una petición falla con “token caducado” leyendo el timestamp real de exp, inspeccionar qué puso realmente un proveedor SSO externo en un token de ID, o depurar una sesión que se comporta de forma distinta a lo que el código sugiere. Hacer eso a mano significa dividir manualmente la cadena por ., decodificar Base64URL (que usa -/_ en lugar de +// y normalmente elimina su relleno), y convertir timestamps Unix en fechas reales, tedioso cada vez.
No es verificación de firma, solo visualización
Esto es lo único que hay que entender bien sobre cualquier decodificador de JWT, incluido este: decodificar un token no es lo mismo que verificarlo. El header y el payload de un JWT son Base64URL plano (legible por cualquiera, no cifrado) así que decodificarlos es trivial y no prueba nada sobre de dónde vino el token. La firma es la parte que realmente certifica la autenticidad, y comprobarla requiere el secreto de firma del emisor (para algoritmos HMAC como HS256) o la clave pública (para algoritmos RSA/ECDSA como RS256/ES256), algo que una herramienta de navegador genérica nunca tiene y no debería pedirte que pegues de todos modos. Esta página te muestra lo que un token afirma, no si esas afirmaciones son ciertas. Trata un payload decodificado como “esto es lo que dice este token”, nunca como “esto está confirmado como legítimo”.
Privado, porque tu token nunca sale de tu dispositivo
Un JWT frecuentemente lleva datos reales de usuario, una dirección de email, un ID de usuario interno, roles de cuenta, a veces más de lo que el emisor pretendía. Pegar eso en un decodificador online aleatorio que silenciosamente lo redirige a través de un servidor es un riesgo real y evitable, especialmente para un token de producción. Esta herramienta ejecuta la lógica de dividir-decodificar-analizar usando solo el motor JavaScript propio de tu navegador: nada se transmite, registra ni almacena, y funciona igual sin conexión una vez que la página ha cargado.
Usos habituales
- Leer los claims (
sub, roles, scopes, campos personalizados) dentro de un token de acceso de API o una cookie de sesión. - Comprobar el claim
expde un token para entender por qué una app dice “sesión caducada”. - Inspeccionar un token de ID de OAuth/OIDC de un flujo de login durante la depuración de una integración SSO.
- Confirmar qué algoritmo de firma (
alg, por ejemploHS256/RS256) declara el header de un token. - Revisar rápidamente un JWT que un backend o script acaba de generar, sin escribir un script de decodificación desechable.
- Una vez que sabes que un token usa un algoritmo HMAC (
HS256,HS512, etc.), calcular de forma independiente ese mismo HMAC con el Generador de HMAC si tienes el secreto de firma, para entender qué representa realmente el segmento de firma. - Editar los claims de un token decodificado y volver a firmar uno nuevo con el Generador de JWT, copia la propia salida
=== HEADER ===/=== PAYLOAD ===de esta herramienta directamente en ese generador, ya que ambas herramientas comparten la misma convención de marcadores de sección. - Decodificar un token pegado directamente de un comando
curl -H "Authorization: Bearer ..."antes de convertir toda la petición en código con el Conversor de Comandos Curl.

