Cómo se usa
- Pega el token, con o sin el prefijo «Bearer ». Las tres partes se muestran en colores distintos.
- Lee el encabezado y la carga útil decodificados. Los claims iat, nbf y exp se muestran como fechas con el tiempo relativo.
- Para verificar la firma, introduce el secreto compartido en tokens HS256/384/512, o pega la clave pública (PEM o JWK) en tokens RS, PS, ES y EdDSA.
- Copia el JSON decodificado si lo necesitas en otro sitio.
Opciones explicadas
- Encabezado
- Metadatos del token, normalmente alg (el algoritmo de firma) y typ. El campo kid indica qué clave lo firmó.
- Carga útil (payload)
- Los claims. Entre los registrados están sub (sujeto), iss (emisor), aud (audiencia), iat (emitido el), nbf (no válido antes de) y exp (caducidad), todos con horas en segundos Unix.
- Firma
- Demuestra que el encabezado y la carga útil no se han modificado. Para comprobarla se necesita el secreto (HMAC) o la clave pública del emisor (RSA, ECDSA, EdDSA).
- El secreto está codificado en Base64
- Algunos servicios guardan los secretos HMAC codificados en Base64. Marca esta opción si el secreto que tienes es la versión codificada.
Claims habituales
| Claim | Significado | Ejemplo |
|---|---|---|
sub |
A quién se refiere el token (ID de usuario) | "1234567890" |
iss |
Quién lo emitió | "https://accounts.example.com" |
aud |
A quién va destinado | "my-api" |
exp |
Hora de caducidad, en segundos Unix | 1790427600 |
iat |
Hora de emisión, en segundos Unix | 1790424000 |
nbf |
No válido antes de, en segundos Unix | 1790424000 |
jti |
ID único del token, para evitar su reutilización (replay) | "a1b2c3" |
Ejemplo
El token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c se decodifica en el encabezado {"alg":"HS256","typ":"JWT"} y una carga útil con sub, name e iat (18 de enero de 2018). Con el secreto your-256-bit-secret, la firma se verifica correctamente.
Preguntas frecuentes
¿Es seguro pegar aquí un JWT de producción?
El token lo decodifica JavaScript en tu navegador y no se sube ni se registra. Aun así, trata los tokens de acceso como contraseñas, porque cualquiera que tenga un token válido puede usarlo hasta que caduque.
¿Decodificar un JWT demuestra que es auténtico?
No. El encabezado y la carga útil solo están codificados en Base64URL, así que cualquiera puede leerlos o falsificarlos. Solo una verificación de firma correcta con la clave adecuada demuestra que el token lo emitió quien se esperaba.
¿Por qué falla la verificación con el secreto correcto?
Comprueba si el secreto está codificado en Base64, si hay un espacio o un salto de línea al final y si el algoritmo del encabezado coincide con el que usa el emisor. Cualquier cambio en el token, aunque sea de un solo carácter, también invalida la firma.
¿Qué significa «alg none»?
Que el token dice no estar firmado. Los servidores deben rechazar estos tokens salvo que los esperen de forma explícita; aceptarlos ha provocado fallos reales de autenticación.
¿Cómo consigo la clave pública de un token RS256?
Los proveedores de identidad publican sus claves como JWKS, normalmente en /.well-known/jwks.json. Copia la clave cuyo kid coincida con el del encabezado del token y pégala aquí como JWK.
Privacidad
Esta herramienta funciona por completo en tu navegador. Tus archivos y textos se procesan en tu dispositivo y nunca se suben a nuestros servidores.