Cómo decodificar un JWT
- Pega tu token en el recuadro JSON Web Token, o presiona Probar con un ejemplo para cargar un token de muestra inofensivo.
- Fíjate en los colores. El token se muestra dividido en cabecera, payload y firma, cada parte de un color, para que veas dónde empieza cada una.
- Lee la cabecera y el payload como JSON formateado. Usa el botón de copiar junto a cada bloque para llevarte el JSON.
- Revisa las fechas del token. Caduca (exp), Emitido (iat) y Válido desde (nbf) se convierten en fechas legibles, con una etiqueta de estado: Vigente, Caducado, Todavía no es válido o Sin fecha de caducidad.
Características
- Decodificación instantánea mientras pegas, sin botones que presionar.
- Cabecera y payload como JSON con formato, cada uno con su botón de copiar.
- Fechas legibles para los claims exp, iat y nbf, con un estado de caducidad claro.
- Acepta el prefijo Bearer, así que puedes pegar el valor de una cabecera Authorization tal cual.
- Avisa cuando aparece alg none, un token sin firma en el que nunca se debe confiar.
- Mensajes de error claros para un token con un número incorrecto de partes, Base64URL no válido, JSON no válido o un JWE cifrado de cinco partes.
- Compatible con Unicode, así que los nombres con acentos o eñes y los claims en cualquier alfabeto se ven bien.
Por qué usar el decodificador de JWT de Fileora
Los tokens de acceso, los tokens de identidad y los tokens de actualización son credenciales. Pegarlos en un sitio web que los manda a un servidor es un riesgo real, porque cualquiera que tenga un token válido puede actuar como ese usuario hasta que caduque. Fileora decodifica el token con JavaScript en tu navegador, así que el token nunca sale de tu dispositivo y no se registra nada sobre él.
La herramienta es gratis, no pide registro y no tiene límites. Funciona en el celular igual que en la computadora, algo útil cuando revisas un token de una app móvil o de un ticket de soporte.
Cómo está hecho un JWT
Un JWT firmado son tres fragmentos de texto unidos por puntos: header.payload.signature. La cabecera y el payload son objetos JSON codificados en Base64URL, una variante de Base64 segura para usar en URL. Esa codificación no es un cifrado: cualquiera que tenga el token puede leer todos sus claims, que es justo lo que hace esta herramienta.
La cabecera indica el algoritmo de firma en alg, por ejemplo HS256 (un secreto compartido) o RS256 (un par de claves privada y pública). El payload lleva los claims: sub para el usuario, iss para el emisor, aud para el destinatario previsto y los claims de tiempo exp, iat y nbf, que se cuentan en segundos desde 1970.
La firma es lo que hace confiable al token. Tu servidor la vuelve a calcular a partir de la cabecera y el payload con su clave, y rechaza el token si el resultado no coincide, si alg no es uno de los que espera o si ya pasó la fecha de exp. Como cualquiera puede crear un token con el payload que quiera, verifica siempre la firma en tu servidor con la clave secreta o la clave pública antes de confiar en un solo claim. Un decodificador como este sirve para leer y depurar, no para decidir quién inició sesión.
Dos consejos: nunca pongas contraseñas ni otros secretos en un payload, porque cualquiera lo puede leer, y usa tiempos de caducidad cortos. Si necesitas un secreto de firma largo y aleatorio, el generador de contraseñas puede crear uno, y el formateador JSON te ayuda a ordenar un payload que estés armando a mano. Para decodificar a mano una sola parte del token, la herramienta de Base64 acepta también el alfabeto Base64URL.