How do I decode a JWT token online?
Paste your JWT token and instantly see its decoded header and payload as formatted JSON. The tool parses all standard claims (exp, iat, iss, sub, aud) and shows human-readable expiration dates. Your token is decoded entirely in the browser — it is never sent to any server.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Header: { "alg": "HS256", "typ": "JWT" }
Payload: { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 }JWT Decoder
Decode and inspect JSON Web Tokens. View header, payload, and expiration status.
Tips & Best Practices
JWTs are not encrypted — anyone can read the payload
A JWT is just Base64url-encoded JSON. The signature prevents tampering but does not hide the contents. Never store sensitive data (passwords, SSNs, credit card numbers) in JWT claims. If you need encrypted tokens, use JWE (JSON Web Encryption) instead.
The 'none' algorithm attack is still exploited
Some JWT libraries accept alg: "none", which means no signature verification. Attackers forge tokens by changing the algorithm to "none" and removing the signature. Always validate that the algorithm matches your expected value (e.g., RS256) and reject 'none' explicitly.
Set short expiration times and use refresh tokens
Access tokens should expire in 5-15 minutes, not hours or days. A stolen JWT cannot be revoked (unlike session IDs) — short expiration limits the damage window. Use a refresh token (stored in an httpOnly cookie) to silently issue new access tokens.
Decode the three parts: Header.Payload.Signature
Split the JWT at the dots. The header tells you the algorithm (RS256, HS256). The payload contains claims — iss (issuer), sub (subject), exp (expiration as Unix timestamp), iat (issued at). The signature is a cryptographic hash that proves the header and payload haven't been modified.
Frequently Asked Questions
How do I decode a JWT token?
Is it safe to paste JWTs into an online decoder?
What is the difference between HS256 and RS256 JWT algorithms?
How do I check if a JWT has expired?
Related Inspect Tools
JSON Visualizer
Visualize JSON as an interactive tree — collapsible nodes, search, path copy, depth controls, and data statistics
Git Diff Viewer
Paste unified diff output from git diff and view it with syntax highlighting, line numbers, and side-by-side or inline display
Compression Tester
Test and compare Brotli, Gzip, and Deflate compression ratios for text content — sizes, savings, and speed
TypeScript 6.0 Migration Checker
Analyze your tsconfig.json for TS 6.0 breaking changes, deprecated options, new defaults, and get a readiness grade with fixes