JWT Decoder

Decode JWT tokens to view headers and payload. No verification β€” just view the contents.

Auth Β· JWT Β· debug claims

Inspect JSON Web Tokens without leaving your browser. Paste a JWT to decode the header and payload, read claims like sub, exp, and aud, and debug auth issues β€” without sending the token to a remote server.

Header + payload decode Base64url in-browser No signature verification No account required Privacy-first

What a JWT is (and is not)

A JSON Web Token is three Base64url segments separated by dots: header.payload.signature. The header typically names the algorithm (alg) and token type. The payload carries claims β€” registered ones like iss, sub, aud, exp, nbf, iat, plus app-specific fields (roles, tenant id, email).

Decoding only reverses Base64url encoding so you can read those JSON objects. It is not authentication. Anyone who has the token string can decode it. Trust requires verifying the signature with the correct secret or public key (often via JWKS), then enforcing exp/nbf, audience, and issuer in your API.

Security: This tool does not verify signatures. A decoded token can be forged or expired. Never treat β€œit decoded” as β€œit is valid.” Avoid pasting long-lived production refresh tokens on shared machines.

How to use this decoder

  1. Copy the full JWT (all three segments) from a cookie, Authorization: Bearer … header, or log line.
  2. Paste it into the input and click Decode.
  3. Read the header (algorithm, type, key id) and payload claims.
  4. Convert Unix exp/iat values with the Timestamp Converter if you need a human date.

Claims you will see often

ClaimMeaningWhat to check in production
subSubject (user/service id)Maps to the right principal in your app
expExpiration (Unix seconds)Reject if now β‰₯ exp (clock skew policy)
nbfNot beforeReject if now < nbf
audAudienceMust match this API / client id
issIssuerMust match your IdP
kid (header)Key idSelects the correct JWKS key

Typical debugging workflow

Example shape

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Segment 1 decodes to a header like {"alg":"HS256","typ":"JWT"}. Segment 2 is the payload claims. Segment 3 is the signature (not verified here).

FAQ

Does DevToolBox verify the signature?

No. Verification needs your HMAC secret or asymmetric public key and belongs in your auth library. This page only decodes for inspection.

Is the token stored on your servers?

Decoding runs in your browser. We do not intentionally log token contents. Prefer local tools for production secrets. Privacy Policy.

Why does my payload look garbled?

Usually a truncated token, wrong paste (missing a segment), or non-JWT Base64. Confirm exactly three dot-separated parts.

JWT vs opaque session tokens?

JWTs are self-contained and readable (when decoded). Opaque tokens are random ids looked up server-side. Both can be secure when implemented correctly; don’t put secrets you can’t afford to leak into JWT payloads.

Related tools

Sponsored