tigtools

Decodificador de JWT

Pega un JWT para leer su encabezado y sus claims, y ver cuándo expira. La decodificación se realiza en tu navegador y no verifica la firma.

Se ejecuta en tu navegador Sin registro

Decodificar no es lo mismo que verificar: cualquiera puede crear un token con cualquier contenido. Esta herramienta no verifica la firma. Solo se ejecuta en tu navegador, pero aun así deberías evitar pegar tokens activos de producción en cualquier sitio web.

Cómo usarla

  1. Copia un token de un encabezado Authorization, una cookie o las herramientas de desarrollo del navegador. Si empieza por “Bearer ”, se eliminará automáticamente.
  2. Pégalo en el cuadro. El encabezado y la carga útil aparecerán como JSON con formato.
  3. Consulta la línea de estado y la tabla de claims para ver el emisor, la audiencia y las fechas de expiración en tu hora local.
  4. Copia el JSON del encabezado o de la carga útil si lo necesitas en otro sitio.

Cómo funciona

Un JSON Web Token (JWT, RFC 7519) en su formato firmado más común (JWS) consta de tres partes codificadas en base64url y separadas por puntos. El encabezado indica qué algoritmo firmó el token, por ejemplo, HS256 (HMAC con SHA-256) o RS256 (RSA). El payload contiene las claims: afirmaciones sobre el usuario y el propio token. La firma permite al servidor comprobar que el encabezado y el payload no se han modificado.

El encabezado y el payload solo están codificados, no cifrados. Cualquiera que tenga un token puede leer su contenido, que es precisamente lo que hace esta herramienta. No incluyas secretos en los payloads de JWT.

Decodificar un token no demuestra nada sobre él. Sin la clave del emisor, nadie puede saber si la firma es auténtica, por lo que el resultado de esta herramienta nunca debe usarse para decidir si se puede confiar en un token. La verificación debe hacerse en tu servidor, con una biblioteca JWT actualizada que compruebe la firma, el algoritmo y los valores exp, nbf, iss y aud.

Las claims registradas se explican en la tabla. exp, nbf e iat son valores NumericDate: segundos desde el 1 de enero de 1970 UTC. La herramienta los convierte en fechas según tu zona horaria y los compara con el reloj de tu dispositivo, sin el pequeño margen que suelen permitir los servidores para compensar las diferencias de reloj. Si el reloj no está bien, el estado tampoco lo estará.

Los tokens con cinco partes son JWT cifrados (JWE). Su payload no se puede decodificar sin la clave, así que la herramienta solo indica el formato.

Ejemplos

¿Por qué mi API devuelve 401?

Decodifica el token de acceso que envía tu aplicación. Si el estado indica «Caducó el …», el cliente debe renovar el token. Si aud muestra https://api.example.com, pero estás llamando a https://api2.example.com, la audiencia no coincide.

Comprobar un ID token de OpenID Connect

Un ID token de un proveedor de inicio de sesión contiene iss (el proveedor), sub (el ID de usuario estable), aud (el ID de cliente), iat y exp, además de claims del perfil, como email y name. Al decodificarlo, puedes ver qué claims recibe realmente tu aplicación.

Leer una claim de marca de tiempo

El payload contiene "exp": 1735689600. La tabla de claims lo muestra como 1 de enero de 2025, 00:00:00 UTC, convertido a tu hora local, e indica también cuánto tiempo ha pasado desde entonces o cuánto falta.

Preguntas frecuentes

¿Esta herramienta verifica la firma del JWT?

No. Solo decodifica el encabezado y el payload. Para verificarlo se necesita el secreto (para HS256) o la clave pública del emisor (para RS256 y ES256), y debe hacerse en tu servidor con una biblioteca de confianza.

¿Es seguro pegar mi token aquí?

El token se decodifica en tu navegador y no se envía a ningún sitio. Aun así, un token válido funciona como una contraseña hasta que caduca, así que es mejor usar tokens caducados o de prueba, y no pegar nunca tokens de producción en herramientas en las que no confíes.

¿Por qué cualquiera puede leer la carga útil?

Los JWT firmados están codificados en base64url, que no es un método de cifrado. La firma protege el token contra modificaciones, no contra la lectura. Si el contenido debe ser secreto, usa un JWT cifrado (JWE) o guarda los datos en el servidor.

¿Qué significa “exp” y en qué unidad se expresa?

exp es la fecha de expiración en formato NumericDate: segundos enteros (no milisegundos) desde 1970-01-01 00:00:00 UTC. El token debe rechazarse en ese momento o después.

¿Por qué aparece el error “no es base64url válido”?

Probablemente el token se cortó o se modificó al copiarlo, por ejemplo, si se perdieron los últimos caracteres, se añadieron comillas o se codificó en URL (%2E en lugar de un punto). Pega el token sin modificar, exactamente como se emitió.

Privacidad

El token se decodifica con JavaScript en tu navegador. No se envía a ningún servidor, no se almacena ni se incluye en las analíticas. No se verifica la firma ni se buscan claves, por lo que no se realizan solicitudes de red.