Todas las herramientas

Decodificador JWT

Decodifica e inspecciona JSON Web Tokens (cabecera, payload, expiración)

Cómo funciona

Decodificador JWTDecodifica e inspecciona JSON Web Tokens (cabecera, payload, expiración). Todo el procesamiento ocurre en tu navegador — sin subida, sin registro, sin email. Gratis para siempre.

Última actualización:

Acerca de Decodificador JWT

Un JSON Web Token parece una cadena opaca llena de puntos y base64, pero por dentro es un header y un payload JSON perfectamente legibles, más una firma que demuestra que el emisor lo acuñó. Este decodificador JWT separa los tres segmentos, hace base64url-decode, formatea el JSON y convierte los claims temporales estándar (iat, nbf, exp) a tu zona horaria local para que veas al instante si el token está expirado, cuándo se emitió y a quién va dirigido.

Decodificar es exactamente lo que un backend dev hace decenas de veces a la semana: una API devuelve un 401, copias el bearer token, quieres ver "sub", "aud", "scope" y "exp" sin abrir Node ni Python. Hacer eso en una herramienta online cualquiera es arriesgado porque los tokens suelen llevar emails, ids internos de usuario, claims de rol e identificadores de tenant — exactamente los datos que no quieres que un tercero registre.

Todo en este decodificador ocurre client-side en tu navegador. El token nunca abandona tu dispositivo, no se envía a ningún servidor, no se guarda en localStorage y desaparece al cerrar la pestaña. La firma se muestra pero a propósito no se valida: eso requiere el secreto o la clave pública del emisor, que jamás te pedimos. Usa tu backend o una librería JWT cuando necesites validación criptográfica real.

Cómo usar Decodificador JWT

  1. Pega el JWT (la larga cadena "xxx.yyy.zzz") en el cuadro de entrada.
  2. Lee el Header decodificado para ver el algoritmo (alg) y el key id (kid) que usó el emisor.
  3. Inspecciona el Payload buscando claims como sub, aud, iss, scope y los campos personalizados que tu servicio inyecte.
  4. Revisa la sección de timestamps: "Expira", "Emitido en" y "No antes de" se convierten a tu zona horaria local.
  5. Mira la insignia "Válido" / "Expirado" para una comprobación rápida y luego copia los claims que necesites.
  6. Recuerda que la firma se muestra pero no se verifica: para validación criptográfica entrega el token a tu backend.

Casos de uso comunes

  • Depurar respuestas "401 Unauthorized" comprobando si el bearer token realmente expiró.
  • Inspeccionar un access token OAuth2 u OIDC para confirmar que scopes, audience y issuer coinciden con lo que la API espera.
  • Leer claims personalizados (tenant id, rol, feature flags) que tu proveedor de auth añadió durante el login.
  • Confirmar problemas de clock-skew cuando "nbf" se dispara unos segundos en el futuro respecto al servidor.
  • Compartir una vista redactada de un token con un compañero sin pegarlo en Slack o en un sitio público.

Consejos y errores comunes

  • Si la decodificación falla, asegúrate de haber copiado el token completo, incluidos ambos puntos: muchas UIs truncan en el primer espacio o esconden la firma final.
  • Un payload decodificado no demuestra nada sobre autenticidad. Cualquiera puede inventarse un JWT con buena pinta; solo verificar la firma con la clave del emisor te dice si es genuino.
  • Trata los JWT como contraseñas al compartir capturas: incluso los tokens "expirados" pueden filtrar ids de usuario, emails y nombres de scopes internos.
  • Si "alg" es "none" en el header, el token no tiene firma alguna y tu servicio debe rechazarlo. Este decodificador igualmente mostrará el payload para que confirmes el bug.

Preguntas frecuentes

¿El token se envía a vuestros servidores?

No. La decodificación ocurre completamente en tu navegador con JavaScript — el token nunca sale de tu dispositivo.

¿Esto verifica la firma?

No. Esta herramienta solo decodifica header y payload. La verificación de firma requiere la clave secreta/pública, que no pedimos — usa tu backend o una librería JWT.

¿Por qué las fechas se muestran en mi zona horaria local?

Los claims estándar JWT como exp, iat y nbf son timestamps Unix (UTC). Los renderizamos en la zona horaria local de tu navegador para mejor lectura.

¿Esta herramienta enviará alguna vez mi token a un servidor?

No. La decodificación es JavaScript plano que se ejecuta en tu pestaña del navegador. No hay fetch, ni telemetría, ni logging. Abre DevTools → Network y verás cero peticiones cuando pegues un token.

¿Puede decodificar también tokens JWE cifrados?

No. Los JWE (JWT cifrados) necesitan la clave privada del receptor para ser legibles. Esta herramienta solo maneja JWS (JWT firmados), que es lo que emite la inmensa mayoría de los flujos OAuth2 y OIDC.

¿Por qué el payload muestra timestamps numéricos y una fecha humana?

Los claims estándar (exp, iat, nbf) se almacenan como segundos Unix en UTC. Mostramos el número crudo más una fecha convertida a tu zona local para que detectes problemas de expiración sin hacer cuentas.

Herramientas relacionadas