Decodificador JWT
Decodifica el encabezado y la carga útil de un JSON Web Token (sin verificación de firma)
¿Qué es un JWT?
Un JSON Web Token es tres partes codificadas en Base64URL separadas por puntos: un encabezado (qué algoritmo se utiliza), una carga útil (los claims — típicamente ID de usuario, expiración, ámbitos) y una firma. El encabezado y la carga útil NO están encriptados, solo codificados: cualquiera con el token puede leerlos. La firma prueba que el token no ha sido alterado.
El decodificador divide las tres partes, decodifica las dos primeras en Base64URL y formatea el JSON. NO verifica la firma: eso requiere la clave secreta o pública del servidor emisor. No pegues tokens de producción en decodificadores no confiables; este es solo para navegador y nunca sube, pero como hábito, utiliza tokens de tu propio entorno de desarrollo para pruebas.
Casos de uso
- Auditar un JWT de terceros: pega un encabezado de Autorización para leer el encabezado y la carga útil sin confiar en un depurador remoto.
- Depurar fallos de autenticación: verifica que los claims exp / iat / aud coincidan con lo que tu backend espera cuando un 401 ocurre en desarrollo.
- Inspeccionar tokens OAuth / OIDC: decodifica un token de acceso o id devuelto por Google, Auth0 u Okta para ver los claims del usuario.
- Enseñar la estructura de JWT: mostrar a los estudiantes las tres partes en Base64 y cómo la firma protege pero no encripta la carga útil.
Ejemplos
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyXzEiLCJleHAiOjE3MDAwMDAwMDB9.signatureHeader:
{"alg": "HS256"}
Payload:
{"sub": "user_1", "exp": 1700000000}Preguntas frecuentes
¿El decodificador verifica la firma?
No: la verificación requiere la clave secreta (HS256) o la clave pública (RS256) utilizada para firmar el token. El decodificador solo te muestra lo que hay dentro; la confianza proviene de la verificación del lado del servidor.
¿Los contenidos de JWT están encriptados?
No, solo están codificados en Base64. Cualquiera con el token puede leer los claims. Usa JWE (JWTs encriptados) si los claims necesitan ser confidenciales.
¿Qué significa el claim `exp`?
Marca de tiempo Unix en la que el token expira. Los tokens que superan su `exp` deben ser rechazados por el servidor. El decodificador señala los tokens expirados por ti.
¿Puedo decodificar un token malformado?
Si una parte no se puede decodificar en Base64 o analizar como JSON, el decodificador muestra un error señalando la parte problemática.
¿Se sube mi token?
No. La decodificación es pura JavaScript: tu token permanece en tu dispositivo.
