Decodificador de JWT

Mira qué hay dentro de un JSON Web Token.

Pega un token para decodificarlo.
Encabezado
Payload
Firma

Esta herramienta decodifica tokens pero nunca verifica firmas. Tu token se queda en esta pestaña del navegador.

Funciona en tu navegador. Nada de lo que escribes se envía a ningún sitio.

Cómo decodificar un JWT

  1. Pega el token, con o sin el prefijo Bearer.
  2. Lee el header y el payload, mostrados como JSON formateado.
  3. Revisa la tabla de claims para el emisor, la audiencia y la expiración.

Las tres partes de un JWT

ParteCodificaciónContiene
HeaderJSON en base64urlAlgoritmo de firma (alg) y tipo de token (typ)
PayloadJSON en base64urlLos claims: los datos reales del token
FirmaBytes en base64urlPrueba de que el header y el payload no cambiaron

Algoritmos de firma comunes

Valor de algTipoNota
HS256Simétrico, secreto compartidoComún para una sola app que emite y comprueba sus propios tokens
RS256Asimétrico, RSAComún cuando otra parte necesita verificar el token, como OAuth
ES256Asimétrico, curva elípticaFirmas más cortas que RSA para el mismo nivel de seguridad
noneSin firmaUn verificador siempre debería rechazar este algoritmo

Claims estándar, según el RFC 7519

  • exp, nbf e iat son todos valores NumericDate: segundos enteros desde la época Unix, nunca milisegundos.
  • aud puede ser una sola cadena o un array de cadenas, cuando un token está pensado para más de una audiencia.
  • jti debe ser único por token, lo que hace posible bloquear un token específico.
  • Ninguno de los claims estándar es obligatorio. Un token puede llevar solo los claims personalizados que defina una aplicación.

Preguntas frecuentes sobre Decodificador de JWT

¿Cuáles son las tres partes de un JWT?

Un header, un payload y una firma, cada uno codificado en base64url y unidos con puntos. El header indica el algoritmo de firma, el payload contiene los claims, y la firma permite al servidor comprobar quién emitió el token.

¿Esta herramienta verifica la firma?

No. Decodifica el header y el payload y nunca comprueba la firma. Verifica los tokens en tu servidor con la clave secreta o pública antes de confiar en ellos. El token que pegas nunca sale de tu navegador.

¿Está cifrado el payload de un JWT?

No en un JWT firmado normal. Solo está codificado, así que cualquiera que tenga el token puede leerlo, por eso las contraseñas y los datos privados nunca deben ir en uno. Los tokens cifrados (JWE) tienen cinco partes y necesitan la clave.

¿Qué significan exp, iat y nbf?

Son momentos en segundos desde el 1 de enero de 1970 (UTC). exp es cuándo expira el token, iat es cuándo se emitió, y nbf es el momento antes del cual no debe aceptarse.

¿Por qué mi token aparece como expirado?

Su hora exp es anterior al reloj de tu dispositivo. Los tokens de acceso suelen durar solo entre 5 y 60 minutos, así que pide uno nuevo, y comprueba que el reloj de tu ordenador esté bien configurado.

¿Qué define el RFC 7519?

Define el propio formato JWT: tres partes en base64url unidas por puntos, y el significado de los claims estándar como iss, sub, exp y aud. No exige ningún algoritmo de firma concreto.

¿Se puede revocar un JWT antes de que expire?

No por sí mismo, ya que es solo datos firmados. Revocar uno antes de tiempo necesita soporte del lado del servidor, como una lista de bloqueo indexada por el claim jti, o una expiración corta combinada con un token de refresco aparte.

¿Por qué exp e iat se muestran como números grandes en lugar de fechas?

Se guardan en el token como valores NumericDate, segundos enteros desde la época Unix (1 de enero de 1970 UTC). Esta página muestra el número en bruto junto a una fecha legible por comodidad.

Herramientas relacionadas