Decodificador de JWT
Mira qué hay dentro de un JSON Web Token.
Claims
| Claim | Valor | Significado |
|---|
Esta herramienta decodifica tokens pero nunca verifica firmas. Tu token se queda en esta pestaña del navegador.
Funciona en tu navegador. Nada de lo que escribes se envía a ningún sitio.
- Fechas exp e iat legibles
- Estado de expiración de un vistazo
- El token se queda en tu dispositivo
Cómo decodificar un JWT
- Pega el token, con o sin el prefijo Bearer.
- Lee el header y el payload, mostrados como JSON formateado.
- Revisa la tabla de claims para el emisor, la audiencia y la expiración.
Las tres partes de un JWT
| Parte | Codificación | Contiene |
|---|---|---|
| Header | JSON en base64url | Algoritmo de firma (alg) y tipo de token (typ) |
| Payload | JSON en base64url | Los claims: los datos reales del token |
| Firma | Bytes en base64url | Prueba de que el header y el payload no cambiaron |
Algoritmos de firma comunes
| Valor de alg | Tipo | Nota |
|---|---|---|
| HS256 | Simétrico, secreto compartido | Común para una sola app que emite y comprueba sus propios tokens |
| RS256 | Asimétrico, RSA | Común cuando otra parte necesita verificar el token, como OAuth |
| ES256 | Asimétrico, curva elíptica | Firmas más cortas que RSA para el mismo nivel de seguridad |
| none | Sin firma | Un verificador siempre debería rechazar este algoritmo |
Claims estándar, según el RFC 7519
- exp, nbf e iat son todos valores NumericDate: segundos enteros desde la época Unix, nunca milisegundos.
- aud puede ser una sola cadena o un array de cadenas, cuando un token está pensado para más de una audiencia.
- jti debe ser único por token, lo que hace posible bloquear un token específico.
- Ninguno de los claims estándar es obligatorio. Un token puede llevar solo los claims personalizados que defina una aplicación.
Preguntas frecuentes sobre Decodificador de JWT
¿Cuáles son las tres partes de un JWT?
Un header, un payload y una firma, cada uno codificado en base64url y unidos con puntos. El header indica el algoritmo de firma, el payload contiene los claims, y la firma permite al servidor comprobar quién emitió el token.
¿Esta herramienta verifica la firma?
No. Decodifica el header y el payload y nunca comprueba la firma. Verifica los tokens en tu servidor con la clave secreta o pública antes de confiar en ellos. El token que pegas nunca sale de tu navegador.
¿Está cifrado el payload de un JWT?
No en un JWT firmado normal. Solo está codificado, así que cualquiera que tenga el token puede leerlo, por eso las contraseñas y los datos privados nunca deben ir en uno. Los tokens cifrados (JWE) tienen cinco partes y necesitan la clave.
¿Qué significan exp, iat y nbf?
Son momentos en segundos desde el 1 de enero de 1970 (UTC). exp es cuándo expira el token, iat es cuándo se emitió, y nbf es el momento antes del cual no debe aceptarse.
¿Por qué mi token aparece como expirado?
Su hora exp es anterior al reloj de tu dispositivo. Los tokens de acceso suelen durar solo entre 5 y 60 minutos, así que pide uno nuevo, y comprueba que el reloj de tu ordenador esté bien configurado.
¿Qué define el RFC 7519?
Define el propio formato JWT: tres partes en base64url unidas por puntos, y el significado de los claims estándar como iss, sub, exp y aud. No exige ningún algoritmo de firma concreto.
¿Se puede revocar un JWT antes de que expire?
No por sí mismo, ya que es solo datos firmados. Revocar uno antes de tiempo necesita soporte del lado del servidor, como una lista de bloqueo indexada por el claim jti, o una expiración corta combinada con un token de refresco aparte.
¿Por qué exp e iat se muestran como números grandes en lugar de fechas?
Se guardan en el token como valores NumericDate, segundos enteros desde la época Unix (1 de enero de 1970 UTC). Esta página muestra el número en bruto junto a una fecha legible por comodidad.