Descodificador de JWT

Pega un JWT y mira su cabecera y contenido como JSON legible, con las fechas explicadas y un aviso si ha caducado. Escribe el secreto para comprobar una firma HS256. Todo en tu navegador.

  • Gratis
  • Sin registro
  • Funciona en tu navegador
jwt-decoder

100 % privado — el token se descodifica en tu navegador y no se envía a ningún sitio.

Cómo funciona

Pega el token

De una cabecera Authorization, una cookie, un registro o la respuesta de un inicio de sesión.

Léelo

Cabecera, contenido y campos, con la caducidad y las fechas en tu idioma.

Comprueba la firma si tienes la clave

Escribe el secreto para verificar HS256, HS384 o HS512.

¿Qué hay dentro de este token?

Un JSON Web Token, o JWT, es la cadena compacta que muchas aplicaciones entregan tras iniciar sesión y que devuelves con cada petición, normalmente en una cabecera Authorization. Parece una larga maraña de caracteres con dos puntos, pero son solo tres trozos de datos codificados: una cabecera que describe el token, un contenido que lleva información y una firma. Cuando algo falla con la autenticación, mirar dentro del token es la forma más rápida de ver si ha caducado, para quién se emitió y qué afirma.

Las tres partes

  • Cabecera: el algoritmo con que se firma el token, por ejemplo HS256 o RS256, y el tipo de token.
  • Contenido: los campos (claims), como el sujeto, el emisor, la audiencia y las fechas. También puede llevar datos propios, como un identificador de usuario o roles.
  • Firma: la prueba de que la cabecera y el contenido no se han alterado, hecha con un secreto o una clave privada.

Las fechas, en cristiano

Los campos de caducidad (exp), no antes de (nbf) y emitido el (iat) se guardan como números de segundos desde 1970, que nadie puede leer. Esta herramienta los convierte en una fecha y hora completas, dice hace cuánto o dentro de cuánto es y muestra un aviso cuando el token ha caducado o aún no es válido, las causas más comunes de un misterioso error 401.

Comprobar la firma

Descodificar no necesita ninguna clave, porque la cabecera y el contenido solo están codificados, no cifrados. Para comprobar que el token es auténtico hace falta la clave. Si el token usa un secreto compartido (HS256, HS384 o HS512), escribe el secreto y la herramienta te dice si la firma es válida. Los tokens firmados con una clave privada, como RS256 o ES256, necesitan la clave pública y no se pueden verificar aquí.

Cualquiera puede leer un JWT

Un malentendido habitual es creer que un JWT es secreto. No lo es: cualquiera que tenga el token puede leer su contenido, como muestra esta herramienta. No pongas contraseñas ni datos sensibles en un JWT salvo que además esté cifrado. Trata también un token vigente como una contraseña: no lo pegues en herramientas que lo envíen a un servidor. Esta funciona por completo en tu navegador.

Lo que no hace

La herramienta no verifica firmas de clave pública, no comprueba la audiencia ni el emisor contra tus expectativas ni hace ninguna petición a un proveedor de identidad. Descodificar con éxito no es prueba de validez. Para dar más formato al JSON, usa el formateador de JSON.

Preguntas frecuentes

¿Cómo descodifico un JWT?
Pega el token. La cabecera y el contenido aparecen como JSON legible, con las fechas explicadas.
¿Puedo saber si un JWT ha caducado?
Sí. Si tiene un campo exp, la herramienta muestra la fecha de caducidad y un aviso que dice si el token ha caducado.
¿Es seguro pegar aquí mi token?
El token se descodifica en tu navegador y no se envía a ningún sitio. Aun así, trata los tokens vigentes como secretos y usa tokens caducados o de prueba cuando puedas.
¿Puede verificar la firma?
Para HS256, HS384 y HS512, sí, si escribes el secreto. Los tokens firmados con claves públicas no se pueden verificar aquí.
¿Está cifrado el contenido de un JWT?
No, solo codificado. Cualquiera con el token puede leerlo, así que nunca pongas secretos en él.
¿Se sube mi token a algún sitio?
No. Todo ocurre en tu navegador.