How this calculator works
- Step 1Split at the dots3 partsHeader, payload and signature.
- Step 2Decode base64urlHeader and payloadEach turns into a small JSON object.
- Step 3Check the timesexp, nbf, iatCompared with the current time, shown in IST and UTC.
A JSON Web Token (JWT) carries claims, such as who a user is and when access ends. Decoding shows those claims. It does not prove the token is genuine.
Worked example: the RFC 7519 sample token
The sample token says it expires at 2011-03-22T18:43:00Z, which is 2011-03-23T00:13:00+05:30 in India.
- Token
eyJ0eXAiOiJKV1Qi… . eyJpc3MiOiJqb2Ui… . dBjftJeZ4CVP…
- Header: algorithmHS256
- Payload: issuer (iss)joe
- Payload: expiry (exp)1300819380
- exp in UTC2011-03-22T18:43:00Z
- StatusExpired
The “exp” value is a Unix time: seconds since 1 January 1970 UTC. The decoder converts it so you do not have to.
Reading the result
- Decoding (this tool)Reads the claimsAnyone can do it; no key is needed.
- Verifying (your server)Proves the tokenChecks the signature with the right key before trusting any claim.
- alg is noneThe token is unsigned and should normally be rejected.
- No exp claimThe token never expires on its own.
- Five partsAn encrypted JWT (JWE) cannot be read without its key.
- Timesexp, nbf and iat in IST, UTC and as a countdown.
Related developer tools
Decoding a JWT shows its claims; it does not prove the token is genuine.
To read the timestamps in its claims, use the Unix timestamp converter. The JSON formatter tidies the payload, and the Base64 encoder and decoder handles the encoding.
Common mistakes
Mistake: Trusting claims because the token decodes.
Instead: Verify the signature on the server first.
Mistake: Putting secrets or personal data in the payload.
Instead: Anyone can read a JWT payload; keep it minimal.
Mistake: Pasting live production tokens into online tools.
Instead: Use test tokens, and revoke any live token you have shared.
Read how we test our calculators, or browse more developer tools.