JWT Decoder
Runs in your browserDecode a JSON Web Token and inspect its header, payload and expiry.
Token
What is a JWT Decoder?
A JSON Web Token is three Base64url-encoded segments joined by dots: a header describing the signing algorithm, a payload carrying the claims, and a signature. The first two segments are encoded, not encrypted — anyone holding the token can read them. A JWT decoder simply performs that decoding and pretty-prints the result, which is what makes it useful as a JWT debugger: you can inspect exactly what a token claims without writing a script to do it.
Decoding is not verification. This tool shows you what a token claims; it does not check whether the signature is genuine, because doing so requires the issuer's secret or public key. A token with a forged payload and a broken signature decodes exactly as cleanly as a valid one. Signature verification belongs on your server, never in a browser tool.
Because the payload is readable by anyone who intercepts it, a JWT should never carry passwords, full payment details or anything else you would not put in a log line.
How to use it
- Paste the token into the input box. A leading "Bearer " prefix is stripped automatically, so you can paste straight from an Authorization header.
- The header and payload decode as you type. No button to press.
- Check the Validity panel to see the JWT's expiry status at a glance — it reads the exp, iat and nbf claims and shows how long until the token expires, or how long ago it did.
- Read the standard claims — iss (issuer), sub (subject), aud (audience), jti (token ID) — alongside any custom claims your application added.
Examples
A decoded payload
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c{
"sub": "1234567890",
"name": "Ada Lovelace",
"iat": 1516239022
}A token with no exp claim
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMTIyMzM0NDU1IiwibmFtZSI6IkdyYWNlIEhvcHBlciIsImlhdCI6MTcwMDAwMDAwMH0.not-a-real-signature{
"sub": "1122334455",
"name": "Grace Hopper",
"iat": 1700000000
}
Validity: No expiry claim — this token never expires on its own.A token with custom claims
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMTIyMzM0NDU1IiwibmFtZSI6IkdyYWNlIEhvcHBlciIsInJvbGUiOiJhZG1pbiIsIm9yZyI6InRvb2xzZWwiLCJpYXQiOjE3MDAwMDAwMDAsImV4cCI6MTcwMDAwMzYwMH0.not-a-real-signature{
"sub": "1122334455",
"name": "Grace Hopper",
"role": "admin",
"org": "toolsel",
"iat": 1700000000,
"exp": 1700003600
}
2 custom claims: role, org