Cómo decodificar tokens JWT e inspeccionar reclamaciones de forma segura
Respuesta rápida
Para decodificar un JWT: pegue el token en el decodificador JWT y el encabezado y la carga útil aparecerán con el formato JSON al instante. La herramienta decodifica localmente las partes codificadas en Base64URL: su token nunca sale de su navegador. Recuerde: la decodificación sólo muestra contenidos; no verifica la firma.
Introducción
Un JWT (JSON Web Token) es un formato de token compacto y seguro URL que se utiliza para la autenticación y el intercambio de información. Un JWT tiene tres partes separadas por puntos: header.payload.signature. El encabezado especifica el algoritmo y el tipo de token, la carga útil contiene reclamos (ID de usuario, roles, vencimiento) y la firma demuestra que el token no fue manipulado. Decodificar un JWT le permite inspeccionar su contenido para depurarlo, pero la decodificación no verifica la autenticidad. Esta guía le muestra cómo decodificar JWT de forma segura en su navegador.
Paso a paso
-
Abra la herramienta decodificadora JWT
Vaya a la página de la herramienta Decodificador JWT. La herramienta acepta cualquier cadena JWT (tres partes codificadas en Base64URL separadas por puntos).
-
Pega tu token JWT
Pegue JWT en el campo de entrada. Un JWT típico se ve así: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSJ9.signature. La herramienta detecta automáticamente las tres partes.
-
Revisar el encabezado decodificado
La herramienta Base64URL decodifica la primera parte y la muestra como JSON. El encabezado normalmente contiene 'alg' (algoritmo, por ejemplo, HS256) y 'typ' (tipo, generalmente 'JWT').
-
Revisar la carga útil decodificada (reclamaciones)
La herramienta decodifica la segunda parte y muestra los reclamos con el formato JSON. Los reclamos comunes incluyen 'sub' (ID de sujeto/usuario), 'iat' (emitido en), 'exp' (vencimiento) y 'role' (rol de usuario).
-
Comprobar la firma (tercera parte)
La herramienta muestra la parte de la firma. Nota: la decodificación NO verifica la firma. Para verificar, necesita la clave de firma y una biblioteca de verificación. Nunca confíes en las afirmaciones de JWT sin verificar la firma del lado del servidor.
Ejemplos
Decodifica un simple JWT
Aporte: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTY5MzUyNjQwMH0.signature
Producción: Header: {"alg":"HS256","typ":"JWT"}
Payload: {"sub":"user1","name":"Alice","iat":1693526400}
JWT con reclamo de vencimiento
Aporte: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY5MzYxMjgwMH0.sig
Producción: Header: {"alg":"HS256"}
Payload: {"sub":"admin","exp":1693612800}
Problemas comunes
- Confundir decodificar con verificar: decodificar un JWT solo lee su contenido; NO prueba que el token sea auténtico. Verifique siempre la firma del lado del servidor con la clave de firma.
- Confiar en tokens caducados: verifique el reclamo 'exp' y rechace los tokens caducados. El valor 'exp' es una marca de tiempo de Unix en segundos.
- Base64 vs Base64URL —JWT usa codificación Base64URL (sin relleno, - y _ en lugar de + y /). Un decodificador Base64 estándar fallará en JWT piezas.
- Datos confidenciales en la carga útil: las cargas JWT son legibles por cualquier persona que tenga el token. No almacene contraseñas, números de tarjetas de crédito u otros secretos en la carga útil.
Consejos
- Verifique siempre la firma JWT del lado del servidor antes de confiar en cualquier afirmación; la decodificación por sí sola no es autenticación.
- Verifique las afirmaciones 'exp' (vencimiento) y 'nbf' (no antes) para asegurarse de que el token sea válido en el momento actual.
- Utilice tokens de corta duración (15 a 60 minutos) con tokens de actualización para sesiones largas: minimiza el daño si se filtra un token.
- Utilice nuestro decodificador JWT para una depuración local segura: su token nunca sale de su navegador.