Debugging expired tokens
Before
User got logged out every 5 minutes
After
Decoded payload showed exp was 5 minutes from iat
Backend was issuing tokens with the wrong expiry. Decoded payload made it obvious.
JWTs look encrypted but they're not — the header and payload are just Base64URL-encoded JSON. This tool splits the token and shows you what's inside. Useful when a token expires early, has the wrong issuer, or you need to check a custom claim.
Your files are processed in your browser and never uploaded to any server.
I use this almost every week when debugging auth flows. My tip: this tool decodes only — it does not verify signatures. Never assume a token is valid just because the payload looks right. The signature is what proves authenticity, and that's a separate check your backend has to do. Also, JWTs are often long; if you're copying from a network tab, grab the whole thing — missing the last few characters will cause a parse error.
— Mirza Noman Baig
These are actual measurements from using this tool, not estimates.
Before
User got logged out every 5 minutes
After
Decoded payload showed exp was 5 minutes from iat
Backend was issuing tokens with the wrong expiry. Decoded payload made it obvious.
Before
Feature flag wasn't working for a specific user
After
Decoded payload confirmed the role claim was missing
The token was issued before the user's role was updated. Backend fix, not frontend.
Before
Token validation kept failing on the backend
After
Decoded header showed HS256 instead of the expected RS256
Wrong signing algorithm was configured on the identity provider. Caught it in 30 seconds.
Splits the JWT and shows readable JSON for both sections.
Issuer, subject, audience, expiry, and any custom claims.
Flags malformed tokens with a clear message about what's missing.
Your token never gets uploaded. Safe for production tokens.
No. It only decodes the header and payload. Signature verification has to happen on your backend, where you have the secret key.
No. Everything runs in your browser. Your tokens never leave your device.
The tool shows an error. Valid JWTs have three parts separated by two dots.
No. Decoding just reads Base64URL data. JWTs aren't encrypted by default — that's why the payload is visible.
Yes. The exp claim is a Unix timestamp. The decoded output shows it as a number, and you can compare it to the current time.