🔐
Developer/JWT Decoder / Debugger

JWT Decoder / Debugger

Decode JWT header and payload locally. No token leaves your browser.

100% LOCAL100% localHS256/RS256Expire checkNo upload
Saved Tokens· Auto-save on
▾
Paste JWT
Data Source & Legal Disclaimer
Effective: Current
Sources: RFC 7519 — JSON Web Token (JWT)

⚠️ Decoding runs 100% locally in your browser — your JWT is never uploaded. Never paste production access tokens or sensitive credentials into any online tool. This decoder only reads the header and payload; it does NOT verify signatures and must not be used to trust token contents.

See all data sources & update policy →
Cómo funcionaPage 2

What a JSON Web Token actually is — illustrated

A JWT (RFC 7519) is a compact, URL-safe string of three dot-separated segments: a header that names the signing algorithm, a payload of claims about the user, and a signature that cryptographically binds the two. Each segment is JSON that has been Base64URL-encoded (URL-safe base64 with the padding stripped). This decoder reads the first two segments locally and checks the exp claim against the current time — it never verifies the signature, because that requires the server's secret key.

header.payload.signature — three segments, one token
HEADER{"alg":"HS256"}eyJhbGciOiJIUzI1NiJ9PAYLOAD{"sub":"1234"}eyJzdWIiOiIxMjM0In0SIGNATUREHMAC-SHA256(header.payload, secret)..compact serializationeyJhbGciOi....eyJzdWIiOi....sQyKx_b0mQ...dot-separated, URL-safeexp / iat claims are Unix seconds — the decodercompares exp to now and flags EXPIRED

Left: the two JSON segments are Base64URL-encoded so the token survives URLs, cookies and Authorization headers. Right: the signature is HMAC-SHA256 (or RSA/ECDSA) computed over the encoded header.payload with a secret only the server holds — that is what proves the token was not tampered with.

Debugging an expired access token

Maya, a backend engineer, gets a 401 Unauthorized from an API. She pastes the token from the Authorization header into this decoder to see exactly what the server was complaining about.

  1. Paste the token:All three segments arrive as one string, straight from the 401 response
  2. Header reads:{"alg":"HS256","typ":"JWT"} — so the server signs with HMAC-SHA256
  3. Payload claims:sub: user 1234, iat: issued-at, exp: expiry — decoder shows EXPIRED when exp is in the past
  4. Signature caveat:Verification needs the secret key, so decoding only inspects — it never trusts — the claims
FAQ y detallesPage 3

A JWT has three parts: header.payload.signature. Paste your JWT to decode the base64 header and payload, check expiry, and inspect claims — all locally in your browser.

FreeToolHub JWT Decoder is a free browser-based tool that decodes JWT tokens to inspect header and payload, no signup, no upload.

Sobre esta herramienta

¿Qué es esta herramienta?

Decodifica y examina la cabecera y el payload de tus tokens JWT al instante. Sin registro: el token nunca sale de tu navegador.

100% localHS256/RS256Expire checkNo upload

¿Qué es el decodificador de JWT?

El decodificador de JWT abre y lee tokens de JSON Web Token en tu navegador, sin enviar nada a ningún servidor. Extrae el encabezado y la carga útil, los muestra como JSON con resaltado de sintaxis y decodifica el contenido en Base64URL, que puede incluir una lista de permisos o claims. Verificar la firma requiere la clave, así que la herramienta indica si el token usa HS256, HS384, HS512, RS256 o ES256 y explica qué necesitas para comprobarla.

¿Quién debería usar esta herramienta?

Desarrolladores que depuran por qué un token es rechazado: el campo exp ya pasó, el aud no coincide, o el iss viene de otro sitio. Equipos de soporte que atienden incidencias donde el cliente pega un token y hay que leerlo. Ingenieros que validan un JWT de terceros sin escribir código. Estudiantes que estudian OAuth y OpenID Connect viendo un token real decodificarse en vivo.

¿Cómo funciona?

(1) Pega el token en el campo, o pega el texto completo de una cabecera Authorization: Bearer. (2) Pulsa Decode. El token se divide en sus tres segmentos separados por puntos, el encabezado y la carga útil se decodifican de Base64URL y se muestran formateados. (3) Lee los datos en una tabla: iss (emisor), aud (audiencia), exp, nbf e iat (tiempos, convertidos a fechas locales), sub (sujeto) y cualquier campo personalizado. (4) Copia el JSON o regenéralo a partir de los datos del token.

Preguntas frecuentes

¿Es seguro pegar un token en esta herramienta?

Sí en cuanto al procesamiento: todo ocurre en tu navegador con JavaScript y el token nunca se envía a ningún servidor. Aun así, un token es una credencial: trátalo como una contraseña y no pegues tokens de producción en herramientas de terceros sin revisar su política de privacidad. Si necesitas depurar un token real, revoca y emite uno nuevo después.

¿Qué es Base64URL?

Es la forma en que JSON Web Token codifica sus segmentos: es Base64 estándar con el alfabeto cambiado (usa guiones y guiones bajos en lugar de más y barra) y sin el relleno del signo igual. Eso permite que el token sea seguro dentro de una URL o una cabecera HTTP. Base64URL no es cifrado: cualquiera puede decodificar y leer el contenido, solo no puede verificar la firma sin la clave.

¿Por qué mi token da error aunque no esté caducado?

Las causas más habituales son: el reloj desincronizado (los servidores validan exp con margen, y un reloj local desviado lo invalida), el aud (audiencia) que no incluye tu servicio, el iss (emisor) distinto del esperado, o que el token se haya firmado con un algoritmo distinto del que usa tu librería al verificar: el caso clásico es esperar RS256 y recibir HS256. Decodifica el token y comprueba el campo alg de la cabecera, que indica con qué algoritmo se firmó.

¿Qué significa el campo exp?

exp es la marca de tiempo de expiración, en segundos desde la época Unix (1970-01-01). Pasada esa fecha, el token deja de ser válido y cualquier servidor bien configurado lo rechazará. La herramienta la convierte a tu hora local para que veas el margen real que queda. Los refresh tokens suelen tener un exp mucho más lejano que los de acceso corto.

Is it safe to decode a JWT token in this tool?

Yes. Decoding a JWT only base64-parses the header and payload sections—it does not transmit your token anywhere. Processing runs entirely in JavaScript on your local machine with zero network requests. Unlike jwt.io (which loads third-party analytics), this tool has no tracking, no cookies, and no external dependencies.

Can it verify a JWT signature?

It decodes and displays the header (algorithm, type), payload (claims, expiration, issuer), and signature. For HS256 tokens, you can paste the secret to verify signature integrity locally. It supports RS256, ES256, and HS256 algorithms—the three most common in production OAuth 2.0 and OpenID Connect implementations.

Otros nombres de esta herramienta

Esta herramienta también se conoce por estas tareas — cada enlace abre la misma herramienta con una guía enfocada:

Herramientas relacionadas

Compartir:𝕏inf⬆
Joke of the Day
Oct 22

What do you call a really smart cookie?

Free core, no account

Keep the Free Edition Free

No signups, no data sold. Every tool is free to use — the free tier allows 5 downloads or saves per day, and the optional Pro plan ($7/mo, $59/yr) adds unlimited downloads, batch processing, white-label exports and an ad-free experience.

☕Support me on Ko-fi— support the free tier

100% of proceeds go towards hosting & building more free tools.