JWT Decoder
Interactive StudioDecode a JSON Web Token's header and payload — entirely in your browser, without verifying the signature. Instant feedback with zero server storage.
Loading tool…
About JWT Decoder
A JSON Web Token is three base64url-encoded segments joined by dots: a header describing the signing algorithm and token type, a payload carrying the actual claims (like a user ID or expiration time), and a signature that ties the two together. This decoder splits the token on its dots, base64url-decodes the header and payload segments, and pretty-prints each as JSON — it does not touch the signature segment at all.
That last point matters more than it sounds: decoding a JWT and verifying a JWT are entirely different operations. Anyone can decode a JWT's header and payload without any secret, because base64url is an encoding, not encryption — the claims inside are readable by design, not confidential. Verifying that a token is authentic and hasn't been tampered with requires re-computing the signature with the issuer's secret or public key and comparing it to the signature segment, which this tool intentionally does not do, since that key is something only the issuing server should hold.
This is useful for debugging an auth flow — checking what claims and expiration a token actually carries, confirming a backend is issuing the fields you expect, or inspecting a token pasted from browser devtools — but it should never be treated as proof that a token is valid or unmodified.
How to use JWT Decoder
- Paste the full token, three parts joined by dots.
- The header and payload are decoded and pretty-printed.
- Check claims such as sub, iat and exp. Expiry is shown as a date.
Worked examples
Input: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkFkYSIsImV4cCI6MTg5MzQ1NjAwMH0
Result: Header {"alg":"HS256","typ":"JWT"}, payload {"sub":"1234","name":"Ada","exp":1893456000}, where exp is 1 January 2030 UTC. This example has no signature part.
Background
A JWT has three base64url-encoded parts: header, payload and signature. Base64url is an encoding, not encryption, so anyone holding a token can read its claims.
This tool only decodes. It does not verify the signature, so a decoded token is not proof that the token is genuine. Signature verification must happen on your server with the right secret or public key. Tokens are decoded in your browser, but avoid pasting live production tokens into any tool you do not trust.
Common mistakes
- Assuming a token is valid because it decodes. Decoding does not check the signature.
- Putting secrets in the payload. It is readable by anyone.
- Reading exp in milliseconds. JWT time claims are in seconds.
Frequently Asked Questions
Frequently Paired With
Fast, local-first developer micro-tools with zero tracking or latency.
Hash Generator
Generate SHA-1/256/384/512 hashes of text.
Regex Tester
Test regular expressions with live highlighting, group captures & replacement.
SQL Formatter
Format and beautify SQL queries.
JSON Formatter
Format, validate, and minify JSON with TypeScript & Zod export.
