JWT Decoder
Decodifica JSON Web Tokens y visualiza header y payload.
JSON Web Token (JWT): Guia completa para desarrolladores
Un JSON Web Token (JWT) es un estandar abierto (RFC 7519) que define un metodo compacto y seguro de transmitir informacion entre partes como un objeto JSON. Los JWTs son ampliamente utilizados en autenticacion y autorizacion de aplicaciones web modernas, APIs REST y arquitecturas de microservicios. Cada token contiene informacion verificable sobre la identidad del usuario y sus permisos.
Un JWT se compone de tres partes codificadas en Base64URL y separadas por puntos: Header (algoritmo y tipo de token), Payload (datos o "claims" como el ID de usuario, roles y fecha de expiracion) y Signature (firma criptografica que verifica que el token no ha sido alterado). Esta herramienta decodifica las dos primeras partes para su inspeccion visual.
Casos de uso practicos
Depuracion de APIs: Cuando tu API devuelve un error 401 o 403, decodifica el JWT para verificar si el token ha expirado, si los roles son correctos o si el payload contiene los datos esperados.
Desarrollo frontend: Inspecciona el JWT almacenado en localStorage o cookies para verificar que la informacion del usuario, sus permisos y la fecha de expiracion son correctos.
Testing de seguridad: Verifica que tu JWT no contiene informacion sensible (contrasenas, datos personales) en el payload, ya que es legible por cualquiera sin la clave secreta.
Preguntas frecuentes
Decodificar un JWT es lo mismo que verificarlo?
No. Decodificar simplemente lee el contenido del Header y Payload (cualquiera puede hacerlo). Verificar implica comprobar la firma criptografica con la clave secreta para asegurar que el token es autentico y no ha sido modificado. Esta herramienta solo decodifica, no verifica.
Que son los "claims" del payload?
Los claims son declaraciones sobre la entidad (usuario) y metadatos adicionales. Los registered claims incluyen: iss (emisor), exp (expiracion), iat (emitido en), sub (sujeto). Los custom claims son datos de tu aplicacion como roles, email o permisos.
Es seguro el algoritmo "none" en JWT?
No, nunca. El algoritmo "none" permite crear tokens sin firma, lo que significa que cualquiera puede forjar tokens validos. Asegurate de que tu servidor rechace siempre tokens con algoritmo "none" y use HS256 o RS256 como minimo.
Donde debo almacenar el JWT en el frontend?
HttpOnly cookies son la opcion mas segura (protegidas contra XSS). localStorage es mas simple pero vulnerable a XSS. sessionStorage es similar pero se borra al cerrar la pestana. Nunca almacenes JWTs en variables globales accesibles por scripts de terceros.
Estructura de un JWT
| Parte | Contenido | Ejemplo |
|---|---|---|
| Header | Algoritmo y tipo | {"alg": "HS256", "typ": "JWT"} |
| Payload | Claims del usuario | {"sub": "123", "exp": 1700000000} |
| Signature | Firma criptografica | HMACSHA256(base64(header) + "." + base64(payload), secret) |