IT Market
Tools/Code/Data/JWT Decoder Online — Read Header and Payload
JWT DECODER

Разбор заголовка и payload

Tool guide

JWT Decoder Online — Read Header and Payload

A JWT is three dot-separated parts: a header, a payload and a signature. The first two are ordinary JSON in base64url, which means anyone can read them without holding a key. Paste a token here and the page splits it into «Header» and «Payload», exposing the signing algorithm, the subject, the roles and the expiry. Treat it as a debugging lens rather than a check: the signature is never verified, so a decoded token is not a valid one. See also: decode a base64url segment by hand, pretty-print and validate the payload JSON, compute SHA-256 for a signature check.

How to use it

  1. Paste the whole token into the field hinted with eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9, keeping both dots and the third part.
  2. Strip the Bearer prefix if you copied the string straight out of an Authorization header.
  3. Press «Decode JWT» and read the «Header» block for the alg and typ values.
  4. Work through the «Payload» block, where sub, exp, iat and any role claims appear as plain JSON.
  5. Convert the exp value with a Unix timestamp tool to see whether the token has already expired.

FAQ

Does this verify the signature?

No. It decodes the first two segments and prints them as JSON. Verifying a signature needs the HMAC secret or the RSA public key, and pasting either into a web page is a bad habit. Read this as a window into the contents: a payload that decodes cleanly says nothing about whether the token is valid.

How do I tell from the payload that a JWT has expired?

Look at exp, a Unix timestamp in seconds marking the point after which a server must reject the token. Compare it against the current time; if exp is smaller, that expiry is what your 401 is about. The iat claim records when the token was issued, and nbf the earliest moment it may be used.

Why does my token fail to decode?

Usually something extra rode along: the word Bearer, quotation marks from a JSON response, a line break in the middle, or a tail truncated by a narrow log column. A real JWT is exactly three parts separated by two dots and contains no spaces. Copy the full string again and retry.

Is it safe to paste a production token into an online decoder?

This page decodes in your own tab and sends the token nowhere. Even so, a live access token is working access to an account: if it has not expired, revoke the session first or use one from a staging environment. Tokens should never go into services that decode them server-side.

What does alg none in the header mean?

It means the token carries no signature at all. Historically this is a well-known attack: a backend that accepts none lets anyone forge a payload. Seeing none against production traffic is a reason to fix validation on the server, not a quirk of the decoder.

Can I edit the payload and rebuild the token?

You can change the text, but you cannot rebuild a working JWT. The signature is computed from a secret the browser does not have, so any server will reject the edited token. This tool is read-only; issue tokens with a library on your own side.

Examples

Token lifted from an Authorization header
Before: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDQyIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNzI1NjAwMDAwfQ.q7Xj0-signature
After: Header: {"alg":"HS256","typ":"JWT"} Payload: {"sub":"1042","role":"admin","exp":1725600000}