Skip to main content

JWT Decoder

Decode a JWT to read its header and payload, inspect claims and expiry.

Online JWT decoder

A JWT (JSON Web Token) has three dot-separated Base64URL parts: header, payload and signature. This JWT decoder turns the first two into readable JSON so you can inspect claims (like sub, iss, exp) and see the exp as a human-readable time — handy for debugging auth. Everything is decoded locally.

How to use

  1. Paste a full JWT into the input box.
  2. The decoded header and payload appear below in real time.
  3. Check whether exp has passed and whether the claims are correct.

Important notes

  • This decodes only — it does not verify the signature (that needs a secret key, which should never go into an online tool).
  • The payload is readable by anyone; never put secrets in it.
  • A token is like a password — be careful when sharing.

Decoding shows the contents — it doesn't verify the signature

When you're chasing down a login bug, the quickest move is to paste the JWT here and read its claims, the issuer, and the exp expiry time — plenty of 'my credentials are right but I keep getting logged out' cases turn out to be a token that expired ages ago. Two ideas are worth burning into memory, though. First, decoding is not verification: this only reads the contents, it never checks whether the signature is valid, so a token that decodes cleanly still isn't necessarily trustworthy. Second, the payload isn't encrypted — it's just Base64, and anyone holding the token can read it, so never stuff a password, key, or any secret into it.

Why does it decode without any key?

Because a JWT is not encrypted. We pasted the sample token from the specification into this page with no key at all: the header came back as { "alg": "HS256", "typ": "JWT" } and the payload as { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 }. Nothing was decrypted, because nothing was encrypted — the first two segments are Base64url text, and the signature protects them from modification, not from reading. So a JWT must never carry anything you would not put in a URL, and pasting a full token into a bug report hands over a working credential until it expires.

Decoding a token is not verifying it

What this page does
splits the token on the dots and Base64url-decodes the header and payload
What it does not do
check the signature — that needs the issuer's secret or public key
Sent anywhere
no: the token is decoded in your browser and never leaves it

A JWT payload is encoded, not encrypted. Anyone holding the token can read every claim in it — including whoever intercepted it — so a JWT is the wrong place for anything you would call a secret. And a token that decodes cleanly can still be forged: only verifying the signature server-side proves it came from the issuer. Use this page to see what is inside a token, never to decide whether to trust one.

Decoded without any key

The standard sample token from the JWT documentation.

Input
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Output
header
{
"alg": "HS256",
"typ": "JWT"
}

payload
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}

No secret was supplied, yet both halves are readable. That is the single most important thing about JWTs: the claims travel in the clear. The signature proves the token was not altered — it does not hide anything.

Frequently Asked Questions

Does this verify the signature?
No. It only decodes (Base64URL) and shows the header and payload — it does not verify the signature, which requires your secret key and should never be pasted into an online tool.
Is my token safe here?
Yes. Decoding happens entirely in your browser; the token is never sent to a server. Even so, treat valid production tokens with care.
Is a JWT encrypted?
No. A JWT header and payload are just Base64URL-encoded, so anyone can read them — never put secrets in the payload.

Related reading

What Is a JWT? How JSON Web Tokens Work (and How to Read One) →

Embed this tool

Add this tool to your own website or blog for free — just copy and paste the code below (it includes a link back to this site).