JWT Decoder
Paste a JSON Web Token to decode the header and payload, inspect timing claims, and spot common mistakes. The token is never sent to any server.
Token
Sharing options
URL sharing is disabled by default. Use the share button below to copy a sanitized summary.
Decoded output
Token structure
Header
Payload
Claim explanations
How it works
A JSON Web Token (JWT) is three URL-safe base64 segments separated by periods: a header, a payload, and a signature. The header and payload are JSON. The signature is a binary blob that authenticates the first two segments.
This decoder splits the input on the periods, base64url-decodes the first two segments, and parses each as JSON. It does not verify the signature — verification needs the issuer's key, which is not safe to handle in a generic web tool. Look for the warnings below the badges if the token looks suspicious (for example, alg: none).
Privacy
Decoding happens entirely in your browser. The token is never sent to a server. Sharing is opt-in: by default the share action sanitizes the token and copies a summary, not the raw token.
Edge cases and notes
- Tokens with two segments are tolerated as unsigned JWTs and flagged. Most servers must reject them.
- Very long claims (
>120 characters) are truncated in the table — the raw payload is still shown above. - Time claims (
iat,nbf,exp) are interpreted as Unix seconds per RFC 7519. Expressing them in milliseconds is a common bug. - Signature verification with a JWK or PEM key is intentionally not in this version.
FAQ
Is the token sent anywhere?
Why is the signature not verified?
jwt-cli or your auth provider's tools.What does “alg: none” mean?
none.