JWT Decoder & Expiration Checker
Debug JWT authentication tokens client-side. Inspect user claims, issuer, algorithm, and check whether the token is expired or valid.
{
"alg": "HS256",
"typ": "JWT"
}{
"sub": "1234567890",
"name": "Alex Doe",
"admin": true,
"iat": 1516239022,
"exp": 1799999999
}A JSON Web Token is three Base64URL-encoded segments separated by dots: a header describing the signing algorithm, a payload of claims, and a signature. The first two are readable by anyone — a JWT is signed, not encrypted. This decoder splits and pretty-prints the header and payload so you can check claims like expiry, issuer, and audience while debugging an auth flow, entirely inside your browser.
How to decode a JWT
- Paste the full token, including both dots and all three segments.
- Read the decoded header to see the signing algorithm ('alg') and key id ('kid').
- Read the payload for the claims that matter: 'exp' for expiry, 'iat' for issue time, 'sub' for subject, 'iss' for issuer, and 'aud' for audience.
- Convert the numeric timestamps — they are Unix seconds, not milliseconds — to check whether the token has expired.
The JWT Decoder & Expiration Checker runs entirely in your browser — nothing you enter is uploaded, stored, or logged.
When to use this tool
Diagnosing 401 responses
When an API rejects a token, decoding it usually explains why immediately: the 'exp' claim is in the past, or the 'aud' does not match the service you are calling.
Verifying what an identity provider actually issues
OIDC providers vary in which claims they include. Decoding a real token is faster than reading the documentation to find out whether email or roles are present.
Checking token lifetime during development
Comparing 'iat' and 'exp' shows the configured lifetime, which is useful when a session expires sooner than expected.
Things worth knowing
- 'exp' and 'iat' are seconds since the Unix epoch. Multiply by 1000 before passing them to JavaScript's Date constructor.
- An 'alg' value of 'none' is a red flag — it indicates an unsigned token, which no production verifier should accept.
- Decoding is not verification. A decoded token that looks correct may still have an invalid signature.
- Never paste a production token belonging to a real user into an online decoder that sends data to a server. This one does not.
Frequently Asked Questions
Is it safe to paste JWT tokens here?
Does decoding a JWT verify its signature?
Is it safe to paste a token here?
Why is my JWT payload readable by anyone?
What do the standard claim names mean?
Why does my token have only two segments?
Related Tools
Base64 Encoder / Decoder
Encode text or decode Base64 strings instantly with live UTF-8 support and URL-safe mode.
UUID / GUID Generator
Generate cryptographically secure Version 4 UUIDs (GUIDs) in bulk with uppercase, hyphen, and quote formatting.
JSON Formatter & Validator
Format, validate, prettify, minify, and inspect JSON payloads with real-time error detection.