Qué muestra un decodificador JWT
Un JSON Web Token, o JWT, es un formato compacto de token comúnmente usado en autenticación, autorización, sesiones de API y flujos de identidad. Un JWT suele tener tres partes separadas por puntos: un header, un payload y una signature. El header y el payload son JSON codificados en base64url, lo que significa que pueden decodificarse y leerse sin una clave secreta.
Este decodificador JWT se centra en la inspección. Formatea el header y el payload, extrae claims comunes, muestra segmentos en bruto y explica claims basados en tiempo como iat, nbf, y exp. Esto es útil al depurar flujos de inicio de sesión, llamadas a API, entornos de prueba, integraciones OAuth o problemas de tiempo de vida del token.
- Lee el algoritmo del token y el tipo desde el header.
- Inspecciona el issuer, el subject, la audience y claims personalizados del payload.
- Convierte claims NumericDate en fechas legibles.
- Copia el header decodificado, el payload decodificado o los segmentos en bruto del token.
La decodificación no es verificación
Decodificar un JWT te dice lo que el token contiene. No demuestra quién lo creó, si el payload fue modificado, si la signature coincide o si tu aplicación debería aceptarlo. La verificación de la signature requiere el secreto correcto, la clave pública o la configuración de JWKS y debe coincidir con el algoritmo esperado por la aplicación.
La parte de la signature es diferente del header y el payload. Es un valor criptográfico sobre el header y el payload codificados, no otro objeto JSON para decodificar. Esta página muestra la signature en la salida de segmentos en bruto cuando existe, pero no solicita claves de firma ni verifica su valor.
Trata esta página como un inspector, no como una autoridad. Un token decodificado aún puede ser falso, expirado, sin firmar, firmado con una clave inesperada o rechazado por el servicio que lo emitió.
Claims comunes de JWT
| Claim | Meaning | Uso típico |
|---|---|---|
iss | Issuer | El servicio o proveedor de identidad que emitió el token. |
sub | Subject | El usuario, cuenta, cliente o entidad sobre la que trata el token. |
aud | Audience | La API, la aplicación o el servicio que debe recibir el token. |
iat | Emitido en | Cuando se creó el token. |
nbf | No antes de | El token no debe aceptarse antes de este momento. |
exp | Expira en | El token no debe aceptarse después de este momento. |
Hábitos seguros para depurar
- Usa tokens de prueba siempre que sea posible en lugar de tokens de usuarios en producción.
- No pegues secretos de firma, claves privadas ni credenciales de API en un decodificador.
- Comprueba que el algoritmo es el esperado por tu aplicación.
- Compare
issandaudfrente al servicio que estás depurando. - Recuerda que la hora del navegador y la hora del servidor pueden diferir cuando depuras problemas de expiración.
Herramientas locales relacionadas
- Usa el Base64 Encoder Decoder cuando necesitas inspeccionar cadenas base64 ordinarias. Los JWT usan base64url, por lo que este decodificador de JWT sigue siendo la opción más segura para tokens completos.
- Usa el JSON Beautifier cuando quieras formatear objetos de payload copiados fuera del contexto del token.
- Usa el Unix Timestamp Converter cuando necesites una comprobación de timestamp dedicada para valores NumericDate como
iat,nbf, oexp.
Preguntas Frecuentes
¿Este decodificador JWT verifica firmas?
No. Decodifica el header y el payload para que puedas inspeccionarlos, pero no verifica la signature ni demuestra que el token sea confiable. La verificación requiere el secreto del issuer, la clave pública o la configuración de JWKS. La signature no se muestra como un panel JSON decodificado porque es un valor criptográfico, no datos de claims legibles; esta herramienta la muestra solo en la salida de segmentos en bruto.
¿Puede cualquiera decodificar un JWT?
Sí, el header y el payload están codificados, no cifrados, a menos que tu sistema use un formato de token cifrado separado. No pongas secretos en los payloads de JWT.
¿Qué significa un JWT expirado?
Si el exp claim está en el pasado, un servidor normalmente debería rechazar el token. Esta página puede mostrar la marca de tiempo, pero el servidor es la autoridad final.
¿Por qué la herramienta acepta un prefijo Bearer?
Los desarrolladores a menudo copian tokens desde un header Authorization: Bearer ... Authorization: Bearer ... la herramienta elimina el prefijo antes de decodificar el cuerpo del token.