JWT Decoder and Token Inspector
Decode and inspect JWTs entirely in your browser. See the header, payload and claims, expiry times, issuer and audience, with a clear warning about signature verification.
Free, no sign-upRuns in your browserNothing uploaded
This decodes the token. It does not verify it.
A JWT payload is base64url-encoded, not encrypted, so anyone holding the token can read it - and anyone can forge a payload that reads however they like. Verifying requires the signing key, which must never be pasted into a webpage. Only the party holding that key can establish that a token is genuine.
Check this token
iat is in the future, which usually means the issuer clock is wrong.
Claims
https://auth.example.com
1234567890
api
1716239022
Header
{
"alg": "HS256",
"typ": "JWT"
}Time claims
May 20, 2024, 9:03:42 PM
Expected values
The two things that most often explain a rejected token.
Output, read only.
Output, read only.
Signature (43 chars of base64url) — shown because it is part of the token, but it cannot be checked here without the signing key.
A JWT is three base64url parts separated by dots: a header, a payload and a signature. The first two are encoded, not encrypted, so anyone holding the token can read its contents. This decoder splits the token and shows you exactly what is inside, which is the first thing to check when a token is rejected or when you need to confirm an issuer or audience.
It also interprets the standard time claims so you do not have to convert them yourself: exp and nbf as readable dates, iat, and the usual iss, sub, aud, jti and scope. A token that has expired, that is not yet valid, or whose audience does not match is called out immediately, because those three account for most authentication failures.
One thing to be clear about: this tool decodes, it does not verify. A JWT signature is checked with the server's secret or public key, and verifying requires that key. Anything a decoded payload claims about itself can be forged, which is exactly why the server must never trust the contents. The banner in the tool says so too, because a decoder that quietly implied verification would be worse than none.
JWT Decoder & Inspector features
How to use the JWT Decoder & Inspector
Paste the token
The whole thing, including the trailing signature, or just the header and payload sections. Whitespace and line breaks are ignored so a wrapped token from a terminal works.
Read the parts
Header and payload are pretty-printed as JSON, with alg, typ, iss, sub, aud, exp, nbf and iat highlighted where present.
Check the timings
Expiry and not-before are shown as local dates and in UTC, with how much time remains or has passed.
Look for problems
Expired tokens, tokens that are not yet valid, an audience mismatch, an unexpected algorithm and a missing signature are all flagged.
Frequently asked questions
Is it safe to paste a JWT into an online decoder?
Why does this not verify the signature?
What is the 'none' algorithm vulnerability?
Why is my token rejected with 'invalid signature'?
Should I store JWTs in localStorage?
Why is the payload readable when I thought it was encrypted?
Related tools
Every tool, in one place
ToolForge has jwt decoder & inspector plus a growing set of image, colour and developer tools. All of them run locally in your browser, free and without an account.
Browse all tools