A JSON Web Token (JWT) carries signed claims as three Base64url segments separated by dots: header.payload.signature. This tool splits a token and decodes the header and payload into readable JSON, in your browser. It does not verify the signature.
How it works
- The token is split on the dot
.into up to three segments. - The header and payload are Base64url-decoded: url-safe
-and_are mapped back to+and/, padding is restored, and the bytes are UTF-8 decoded and parsed as JSON. - The result is pretty-printed. Standard time claims —
iat(issued-at),nbf(not-before), andexp(expiry) — are Unix timestamps in seconds and are shown as readable dates. - If the current time is past
exp, the token is flagged as expired.
The signature is raw cryptographic bytes, so it is shown only as its Base64url string, not decoded to JSON.
Tips and examples
A token like eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE3MDAwMDAwMDB9.sig decodes to a header {"alg":"HS256"} and a payload containing sub and an exp timestamp shown as a date. Because anyone can decode a JWT, never put secrets in the payload, and always verify the signature server-side before trusting any claim for authentication or authorization.