JWT Decoder
Decode and inspect JSON Web Tokens — header, payload, and expiry. Tokens are never sent to a server — everything runs in your browser.
About JWT Decoder
A JSON Web Token (JWT) is a compact, URL-safe way to represent claims between two parties. Every JWT has three Base64URL-encoded parts separated by dots: the header (algorithm and type), the payload (the claims — user ID, role, expiry, etc.), and the signature (cryptographic proof). JWTs are used everywhere: OAuth 2.0, OpenID Connect, Auth0, Firebase Auth, Supabase, and custom auth systems. This decoder splits the token, Base64URL-decodes each part, and shows you the readable JSON. It also highlights common claims like exp (expiration), iat (issued at), and nbf (not before), and warns you if the token is expired. Everything runs in your browser — your tokens never leave your device.
How It Works
- Paste a JWT (starts with "eyJ...") into the input box.
- The decoder instantly splits the token into its three parts (header, payload, signature).
- Header and payload are Base64URL-decoded and shown as formatted JSON.
- The signature is displayed in its raw encoded form (verification requires the secret/key, which you should never share).
- Common claims like exp, iat, nbf, iss, sub, aud are highlighted with human-readable dates.
✨ Key Features
- ✓Decode JWT header and payload instantly
- ✓Base64URL decoding (RFC 4648 §5)
- ✓Human-readable timestamps for exp, iat, nbf
- ✓Expiry status indicator (valid / expired)
- ✓Signature shown in encoded form
- ✓Supports all standard JWT algorithms (HS256, RS256, ES256, etc.)
- ✓Pretty-printed JSON output
- ✓Works with copy-pasted tokens from any source
- ✓100% client-side — tokens never sent to a server
🎯 Common Use Cases
- →Debugging authentication issues with Auth0, Firebase, Supabase, Clerk
- →Inspecting OAuth 2.0 access tokens and ID tokens
- →Checking whether a JWT has expired without logging in
- →Understanding custom claims in a token
- →Teaching or learning about JWT structure
- →Verifying token contents during API development
- →Troubleshooting "invalid token" or "unauthorized" errors
- →Auditing what information is exposed in a token
💡 Advanced Tips & Pro Insights
- ▸A JWT is NOT encrypted — anyone can decode it. Never put secrets (passwords, API keys, PII) inside a JWT payload unless it is a JWE (encrypted JWT).
- ▸The exp, iat, and nbf claims are Unix timestamps in SECONDS (not milliseconds).
- ▸This tool only DECODES — it does not VERIFY signatures. Verification requires the secret (HS256) or public key (RS256/ES256) and is a server-side operation.
- ▸Base64URL differs from standard Base64: it uses - and _ instead of + and /, and omits padding =. JWTs follow Base64URL.
- ▸Token IDs (jti claim) are used for revocation. If a JWT is stolen, it remains valid until exp unless the server maintains a revocation list.