Skip to content
beginthings.

Dev & Data

JWT decoder

Paste a JWT to read its header and payload, see when it was issued and when it expires, and optionally check the signature with a test key. Decoding happens only in your browser.

Never paste a live token or a real secret into any website. This page decodes on your device and sends nothing, but a production token or key is a password: use test tokens, or tokens that have already expired.

Token

"Bearer " at the start is removed automatically.

Check the signature (optional)

HS256/384/512: the shared secret. RS, PS and ES: a PEM public key (-----BEGIN PUBLIC KEY-----).

Result

How to use this tool

  1. Paste the token into the box. A leading "Bearer " is removed for you.
  2. Read the header, payload and the claims table with readable dates.
  3. Check the expiry warning to see whether the token is still valid.
  4. To check the signature, enter a test secret or a PEM public key.

How it works

A JWT has three parts separated by dots: a header that names the signing algorithm, a payload of claims such as the subject, issuer and expiry, and a signature. The first two parts are only Base64URL-encoded JSON, so anyone holding a token can read them. The decoder shows both, turns time claims such as exp, iat and nbf into readable dates and tells you whether the token has expired.

To check a signature, enter the shared secret for HS256, HS384 or HS512, or a PEM public key for RS, PS and ES algorithms. The check uses your browser's Web Crypto API. Encrypted tokens (JWE, five parts) cannot be read without the private key and are not decoded.

Good to know

Decoding is not verifying. A server must check the signature, the algorithm it expects, the issuer, the audience and the expiry before trusting any claim. Watch out for tokens with alg set to none: they are unsigned and must be rejected. Because the payload is readable by anyone, never put passwords or other secrets inside a JWT.

This page runs entirely in your browser and makes no network requests with your token. Even so, treat a production token like a password: it can sign someone in until it expires. Use tokens from a test environment, or ones that have already expired, when you debug.

Frequently asked questions

Is it safe to paste my token here?

The token is decoded on your device and never sent. Still, never paste a live production token or a real secret into any website. Use test or expired tokens.

Does decoding prove the token is genuine?

No. Anyone can read a JWT. Only a signature check with the right key shows it was not changed.

Which algorithms can it verify?

HS256, HS384, HS512 with a shared secret, and RS256/384/512, PS256/384/512 and ES256/384/512 with a PEM public key.

Why does it say expired?

The exp claim is earlier than the current time on your device.

Can it decode encrypted tokens?

No. A JWE needs the private key to decrypt, which you should never paste into a web page.

More free tools you might need