Por Just Quality, desarrollo de software en Granada.

Desarrollo

JWT Decoder

Decodifica cabecera y payload de un JWT sin verificar firma.

JWT

{
  "header": {
    "alg": "HS256",
    "typ": "JWT"
  },
  "payload": {
    "sub": "123",
    "name": "GeneraTodo"
  }
}

JWT decodificado correctamente.

  • Algoritmo de firma (alg): HS256.
  • Asunto (sub): 123.
  • Sin fecha de caducidad (exp): el token no expira por sí mismo.
  • No se verifica la firma; solo se decodifican la cabecera y el payload.

Leemos el token, no verificamos su firma. Uno que se abre bien puede estar caducado o manipulado.

JWT Decoder

Descompone un JSON Web Token en su cabecera y su cuerpo para ver los claims que contiene: sujeto, permisos, fechas de emisión y caducidad. La lectura es local y no verifica la firma.

Ver qué lleva dentro un token

  • Ver por qué una sesión caduca antes de tiempo.
  • Comprobar qué permisos lleva dentro el token de un usuario que se queja.
  • Averiguar quién emitió un token que llega de un tercero.

Leer no es verificar

Decodifica cabecera y cuerpo, pero no verifica la firma: un token legible puede estar caducado o manipulado. La validez la confirma el servidor. Importa decirlo aquí más que en otras páginas: el token no se envía a ninguna parte, se abre dentro de tu navegador.

Preguntas frecuentes

¿Que se abra significa que vale?

No, y esa confusión sale cara. Abrimos la cabecera y el cuerpo, que viajan en Base64Url y cualquiera puede pasar a texto, pero de la firma no comprobamos absolutamente nada. Un token caducado se abre igual de bien. Uno al que alguien haya cambiado el rol a administrador, también. Quien decide si sirve es el servidor que guarda la clave.

¿Qué me cuentas de las fechas?

Te las traducimos. Los claims iat, nbf y exp llegan como segundos desde 1970 y ahí no hay quien lea nada, así que los pasamos a fecha y hora. Con exp añadimos si ya caducó y cuánto le queda o cuánto hace que expiró. Y si el token no lleva exp te lo decimos, porque un token sin caducidad no es un detalle menor: es una llave sin fecha de devolución.

¿Puedo pegar un token de producción?

Técnicamente no sale de tu pestaña. Lo partimos por los puntos y lo descodificamos ahí mismo, sin una sola llamada de red. Dicho eso, un JWT de sesión abre puertas mientras no caduque, y la costumbre sana es no pasearlo por herramientas web, ni por la nuestra. Coge uno de un entorno de pruebas.

¿Por qué va el contenido a la vista?

Porque la firma garantiza que nadie lo ha tocado, no que nadie lo lea. Son dos cosas distintas y se confunden mucho. Lo que metas en el payload viaja en claro para cualquiera que intercepte la petición o abra el almacenamiento del navegador, así que ahí no va un DNI ni un correo si puedes evitarlo. Cuando de verdad hace falta esconder el contenido existe JWE, que cifra además de firmar.