JWT Decoder
Decode JWT tokens and inspect the header, payload, and signature. No data is sent to any server.
About the JWT Decoder
JSON Web Tokens (JWT) are a compact, URL-safe method for transmitting claims between parties. They're widely used for authentication and authorization in modern web applications. Our JWT Decoder lets you decode the header and payload of any JWT token, displaying them as formatted JSON for easy inspection. All decoding occurs locally in your browser — your tokens are never sent to any server, maintaining complete security.
What Is JWT Decoder?
A JSON Web Token (defined in RFC 7519) is a string with three Base64URL-encoded parts separated by dots: header.payload.signature. The header describes the token type and the algorithm used to sign it (for example HS256 or RS256). The payload contains claims — statements about the subject, such as the user ID ('sub'), issued-at time ('iat'), expiration ('exp'), issuer ('iss'), and any custom fields your application needs. The signature is produced by signing the encoded header and payload with a secret or private key, which lets the receiving server verify that the token has not been tampered with. JWTs are stateless: the server does not need to look up a session, because all the information needed to authorize a request travels inside the token. The critical security caveat is that JWTs are encoded, not encrypted — anyone who obtains the token can read the payload. This tool decodes the header and payload for inspection; it does not verify the signature.
How to Use
- Paste your JWT token into the input field above.
- Click 'Decode' to parse the token.
- View the decoded header (algorithm, token type) in the first code block.
- View the decoded payload (claims, user data, expiration) in the second code block.
- Verify the token structure: a valid JWT has three parts separated by dots (header.payload.signature).
Common Use Cases
- Debugging authentication failures by inspecting claims and expiry
- Verifying that expected roles or scopes are present in a token
- Checking the algorithm and key ID in the header during key rotation
- Learning how JWTs are structured while implementing login flows
- Confirming a token's expiration before sending a refresh request
Examples
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiZXhwIjoxNzAwMDAwMDAwfQ.abc123
Header: { "alg": "HS256", "typ": "JWT" }
Payload: { "sub": "1234567890", "name": "Alice", "exp": 1700000000 } Three dot-separated Base64URL parts. Note 'exp' is a Unix timestamp.
Tips & Best Practices
- JWTs are Base64URL-encoded, not encrypted — the payload can be read by anyone with the token.
- The signature verifies the token hasn't been tampered with but this tool does not verify signatures.
- Check the 'exp' claim in the payload to see if the token has expired.
- Never paste production JWT tokens into online tools that send data to a server — ours is client-side only.
Frequently Asked Questions
Is decoding a JWT the same as decrypting it?
No. JWTs are Base64URL-encoded, not encrypted (unless you are using JWE, JSON Web Encryption). Decoding simply reverses the encoding so anyone can read the payload. Confidentiality must come from transporting the token only over HTTPS and never putting secrets in the payload.
Does this tool verify the token's signature?
No. Signature verification requires the signing secret or public key, which the issuer keeps. This tool decodes the header and payload for inspection only. Your backend must always verify signatures before trusting a token.
How can I tell if a token has expired?
Decode the payload and look at the 'exp' (expiration) claim, which is a Unix timestamp in seconds. Compare it to the current time. Also check 'nbf' (not before) and 'iat' (issued at) if present.
Is it safe to paste a production token here?
Decoding happens entirely in your browser and nothing is uploaded, so it is safer than pasting into a server-side tool. That said, treat access tokens as credentials: avoid pasting them anywhere unnecessary, and rotate any token you suspect may have leaked.
This jwt decoder runs entirely in your browser. No data is uploaded to any server. Your privacy is completely protected.
Related Tools
Base64 Encoder / Decoder
Encode text to Base64 or decode Base64 strings back to plain text. Supports UTF-8 and binary data.
JSON Formatter
Format, validate, and beautify JSON data instantly. Parse and fix malformed JSON with syntax highlighting.
Hash Generator
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from any text input.
UUID Generator
Generate random UUIDs (v4) and GUIDs. Copy with one click. Perfect for developer testing.