Decodificador / Codificador JWT

Decodifica e inspecciona tokens JWT al instante, o crea JWTs firmados. 100% en el navegador.

Todo el procesamiento se realiza en tu navegador. No se envían datos a ningún servidor.

¿Qué es JWT (JSON Web Token)?

JWT (JSON Web Token) es un estándar abierto (RFC 7519) para transmitir información de forma segura entre partes como un objeto JSON. Se usa ampliamente para autenticación e intercambio de información en aplicaciones web. Un JWT está codificado en Base64URL, no cifrado, por lo que cualquiera puede decodificar el payload. Nunca almacenes información sensible en un JWT sin cifrado.

Estructura de JWT

Ejemplo

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

HeaderPayloadSignature

Header

Contiene el tipo de token (typ) y el algoritmo de firma (alg), como HS256 o RS256.

Payload

Contiene claims — declaraciones sobre el usuario y metadatos como exp (expiración), iat (emitido en) y sub (sujeto).

Signature

La firma se crea firmando el header y payload codificados con una clave secreta. Verifica que el token no haya sido alterado.

Claims estándar

ClaimClaims estándar
issEmisor
subSujeto (ID de usuario)
audAudiencia
expExpiración
iatEmitido en
nbfNo válido antes de
jtiID único JWT

Preguntas frecuentes

¿Está cifrado el JWT?
No. Un JWT estándar (JWS) solo está firmado, no cifrado. El payload está codificado en Base64URL y cualquiera puede decodificarlo. Nunca incluyas información sensible como contraseñas en el payload de un JWT.
¿Por qué se necesita una clave secreta para verificar la firma?
Las firmas basadas en HMAC (HS256, etc.) usan un secreto compartido. Sin el secreto, es imposible verificar si la firma es auténtica. Decodificar el payload y verificar la firma son operaciones distintas.
¿Qué pasa si no hay claim exp?
Si falta el claim exp, el token nunca expira por sí solo. El servidor debe implementar su propio mecanismo de revocación para invalidar esos tokens.
¿Cuál es la diferencia entre HS256 y RS256?
HS256 usa una clave secreta simétrica que comparten todas las partes. RS256 usa un par de claves asimétricas (clave privada para firmar, clave pública para verificar), más adecuado para microservicios.
¿Dónde debo almacenar un JWT?
Se recomiendan las cookies HttpOnly, ya que protegen contra ataques XSS. Almacenar JWTs en localStorage es conveniente pero vulnerable a XSS.
¿Qué es un Refresh Token?
Un Refresh Token es un token de larga duración que permite obtener un nuevo Access Token cuando expira, sin necesidad de que el usuario vuelva a iniciar sesión.
¿Se envía el JWT que pego a algún servidor?
No. Todo el proceso de decodificación y codificación se realiza en tu navegador con JavaScript. No se transmite nada a ningún servidor.

Herramientas relacionadas