What this JWT decoder shows you
A JSON Web Token looks opaque, but only the signature is cryptographic — the header and payload are plain JSON that has been base64url-encoded. This tool splits the token on its two dots, decodes the first two segments, pretty-prints the JSON, and converts any exp, iat or nbf claims into human-readable UTC dates with a clear expired/valid verdict. The signature segment is displayed as-is: decoding it would just yield raw bytes, and this tool deliberately does not verify it — that requires the issuer’s key and belongs on your server.
Everything happens locally in your browser. Even so, treat live production tokens like passwords: they are bearer credentials, and the safest tokens to inspect are expired ones.
Reading a decoded token
- Header — check
alg;HS256means a shared secret,RS256/ES256a public/private key pair. - Payload —
subidentifies the subject; registered claims sit alongside whatever custom claims the issuer added. - Timestamps —
exp,iatandnbfare Unix seconds; convert any other epoch values with the Unix Timestamp Converter.
Debugging common JWT problems
Most “invalid token” errors are visible after a decode: an exp in the past (clock skew between servers is a classic), an aud or iss that does not match what the verifier expects, or a token truncated by a header size limit so the third segment is missing. Since the payload is just Base64-encoded JSON, remember that nothing in it is confidential — never put secrets in JWT claims.