JWT Decoder

Developer Tools

Decode and inspect JSON Web Tokens (JWT) in your browser.

⚡ Instant🔒 Private, in your browser🆓 Free, no sign-up👥 For developers
Your data never leaves your browser. We do not store inputs.

What JWT Decoder does

The JWT Decoder shows the header and payload of a JSON Web Token, converts the iat, nbf and exp claims to readable dates and tells you whether the token is expired. It also checks the token structure and flags unsigned "none" tokens. Decoding happens in your browser and the token is never sent anywhere.

FV
Reviewed by the FreeToolsVerse team · Last updated · How we check our tools

Features and benefits

  • Shows the header and payload of a token as formatted JSON
  • Converts the iat, nbf and exp claims into readable dates and says whether the token has expired
  • Warns when there is no expiry claim and flags the unsigned "none" algorithm
  • Private: the token is decoded in your browser and never sent anywhere

How to use JWT Decoder

  1. Paste the JWT (a "Bearer " prefix is fine)
  2. The token is decoded automatically
  3. Read the decoded header, payload claims and time status
  4. Check the warnings for problems such as a missing expiry or an unsigned token

Who should use it

Made for developers. Typical uses:

  • Debugging JWT authentication tokens
  • Inspecting token claims and permissions
  • Verifying token structure and format

Example

The sample token from the JWT documentation has the header {"alg":"HS256","typ":"JWT"} and the payload {"sub":"1234567890","name":"John Doe","iat":1516239022}. The decoder shows the algorithm HS256, the subject 1234567890, an issue time of 2018-01-18 01:30:22 UTC, and a warning that the token has no exp claim and so never expires.

Limitations and accuracy

It decodes and checks structure and claims but does not verify the signature, which needs the issuer's secret or public key, so never trust a token just because it decodes. Encrypted tokens (JWE) cannot be read without the key.

Accuracy: Output is tested against known inputs. For production code, review the result and run your own tests.

Expert Tip

Treat every token as a credential. Decode tokens from test systems freely, but avoid pasting live production tokens anywhere, and always verify the signature, expiry, issuer and audience on the server that receives the token.

Frequently asked questions

Does it verify the signature?
No. Verifying needs the secret or public key. This tool shows what a token claims, not whether it is genuine.
Is it safe to paste a real token?
Decoding happens locally and nothing is uploaded. Even so, treat live production tokens as secrets and prefer a test token when you can.
What do exp, iat and nbf mean?
exp is when the token expires, iat is when it was issued and nbf is the earliest time it is valid. They are Unix timestamps in seconds, which the tool converts to dates.

JWT Decoder: the complete guide

What is inside a JWT

A JSON Web Token is three parts separated by dots: a header, a payload and a signature. The header and payload are JSON written in a URL-safe form of Base64, and anyone who holds the token can read them. The JWT Decoder splits the token, decodes the first two parts and shows them formatted.

Take the well-known sample token from the JWT documentation. Its header is {"alg":"HS256","typ":"JWT"}, which says it was signed with HMAC and SHA-256, and its payload is {"sub":"1234567890","name":"John Doe","iat":1516239022}.

Claims and dates

The payload contains claims. The standard ones are short names with specific meanings, and the tool turns the time claims into readable dates.

  • sub is the subject, usually a user ID.
  • iat is when the token was issued. In the sample, 1516239022 means 2018-01-18 01:30:22 UTC.
  • exp is when the token expires, and nbf is the time before which it is not valid. The tool says whether the token is expired or not yet valid.
  • iss and aud name the issuer and the intended audience.

Warnings it gives

The sample token has no expiry claim, so the tool reports "No exp claim, so this token never expires", which is worth noticing because tokens that never expire are a risk if they leak. It also checks that the token has the right structure and flags the unsigned "none" algorithm, which should never be accepted by a server.

Decoding is not verifying

Reading a token is not the same as trusting it. Anyone can create a token with any payload. Only the signature proves that the issuer created it, and checking the signature needs the secret or public key, which this tool does not have. A server must always verify the signature, the algorithm, the expiry, the issuer and the audience before it trusts a token. Encrypted tokens (JWE) cannot be read without the key at all.

Keeping tokens private

A live token is a credential: whoever holds it can act as the user until it expires. This tool decodes in your browser and sends nothing anywhere, but you should still avoid pasting production tokens into tools you do not trust, and revoke any token that has been shared by mistake. For related tasks, the Base64 Encoder Decoder shows how the parts are encoded, the JSON Formatter tidies the payload, and the Unix Timestamp Converter converts the date claims.

Common problems when debugging tokens

Most token errors come down to a handful of causes: the token has expired, its clock is a few seconds ahead of or behind the server, it was issued for a different audience or issuer, or the wrong key was used to check the signature. Decoding the claims here shows the dates and values side by side, so you can see which one is out of line. Remember that expiry times are in UTC and are written as seconds since 1970.

Learning resources

Explore more in Developer Tools, read the guides and articles, or see how we test our tools.

Share This Tool