Modern Niche World MNW

JWT Decoder

Paste a JSON Web Token to read its header, payload and signature, with each standard claim explained and its times shown in your local time.

Decodes only. It doesn’t verify the signature. This shows what a token says, not whether it’s genuine: anyone can write a token with any claims. Only a server holding the right key can check it.

Paste the whole token. A “Bearer ” prefix, quotation marks and line breaks are removed for you. Up to 10 million characters.

The token stays on your device: this page decodes it in your browser and sends nothing. Even so, don’t paste live production tokens into tools you don’t trust.

Paste a token to decode it.

See what a token says before you trust it

A JSON Web Token (JWT) carries claims, such as who a user is and when their login runs out, between a sign-in service and an app. It looks like a jumble because each part is base64url-encoded, not because it’s secret. This tool turns it back into readable JSON, which helps when a login fails, a session ends too soon or an API refuses a request.

How to use it

  1. Copy a token from your app, an Authorization header or your browser’s developer tools.
  2. Paste it into the box. It’s decoded as you paste.
  3. Read the summary first: signed or not, and expired or not by your device’s clock.
  4. Check the claims, then copy the header or payload, or download both as one JSON file.

The three parts

  • Header: the token type and the signing algorithm, such as HS256 or RS256.
  • Payload: the claims. Seven are standard (iss, sub, aud, exp, nbf, iat and jti); anything else is up to the issuer.
  • Signature: made from the first two parts with the issuer’s key. It’s shown as written, never checked.

Reading the result

The line at the top says whether the token is signed and whether it has expired. Each time claim is shown in your time zone and in UTC, with how long ago or how soon it falls. Notes flag anything unusual: a token without a signature, a claim named twice, a signature of the wrong length, or a time that looks like milliseconds.

What it doesn’t do

It doesn’t verify signatures, so it can’t tell a genuine token from a forged one: verifying needs the issuer’s key, and belongs on your server. It can’t decrypt an encrypted token (JWE), and it doesn’t make or edit tokens.

Good practice

  • Treat live tokens like passwords. Anyone holding one can act as you until it expires. Prefer test or expired tokens when debugging.
  • Payloads aren’t private. Anyone with the token can read them, so they shouldn’t hold secrets.
  • Refuse “alg”: “none”. A token without a signature proves nothing.

Good to know

Times in a JWT are seconds since January 1, 1970 (UTC). Expiry is judged by your device’s clock, which can differ from your server’s by a few minutes. Large numbers are shown exactly as written. To check meeting times across places, use the Time Zone Converter.

Frequently asked questions

Does this check that a token is genuine?
No. It only decodes the token so you can read it. Checking the signature needs the issuer’s secret or public key, and that’s your server’s job. Anyone can write a token with any claims in it, so never trust what a token says until it has been verified.
Is it safe to paste a token here?
This page decodes the token in your browser and sends it nowhere; nothing is saved either. Even so, a live token works like a password until it expires, so prefer expired or test tokens, and don’t paste production tokens into tools you don’t trust.
Why does it say a token expired when my app still accepts it?
The times are compared with your device’s clock, which may differ from the server’s. Many servers also allow a minute or two of leeway, and some don’t check the expiration time at all.
Can it read an encrypted token?
No. An encrypted token (JWE) has five parts instead of three, and its claims can only be read with the recipient’s key. The tool shows its header, which isn’t encrypted, and tells you the rest is.

This tool decodes tokens. It doesn’t verify signatures, so it can’t tell whether a token is genuine; only a server holding the right key can.