The JWT Decoder lets you decode and inspect JSON Web Tokens (JWT) instantly. Paste any JWT and view the decoded header (algorithm, token type), payload (claims, expiry, issuer, subject, audience), and signature portion — all formatted as readable JSON.
Expiry times (exp) and issued-at times (iat) are converted from Unix timestamps to human-readable date and time. Claims are displayed with clear labels so you can quickly understand the token's purpose and validity period.
This tool does not verify the JWT signature — it only decodes the header and payload. No secret key is required.
All decoding happens entirely in your browser. Your JWT never leaves your device.
Paste your JWT token into the input field.
The header and payload are decoded and displayed as formatted JSON.
Expiry (exp) and issued-at (iat) times are shown as human-readable dates.
Review the claims and copy any values you need.
Decoding a JWT and verifying it are two different operations. Decoding simply reads the Base64URL-encoded header and payload and converts them back to readable JSON — no secret key is needed, and this is exactly what this tool does.
Verification additionally checks the token's signature against a secret or public key to confirm the token hasn't been tampered with and was actually issued by a trusted party. A token can be decoded by anyone, but only someone with the correct key can verify it's authentic — never trust a decoded JWT's claims without verifying its signature server-side first.
No — all decoding happens entirely in your browser using JavaScript. Your token never leaves your device.
No — signature verification requires the secret key (for HMAC) or the public key (for RSA/ECDSA), which are not available to this tool. It decodes the header and payload only.
Claims are statements about the subject of the token. Standard claims include: iss (issuer), sub (subject), aud (audience), exp (expiration time), iat (issued at), and jti (JWT ID). Custom claims are also common.
The exp claim contains a Unix timestamp. This tool converts it to a readable date and highlights it if the token is already expired.
A JWT has three Base64URL-encoded parts separated by dots: the header (algorithm and token type), the payload (claims), and the signature.
Common algorithms include HS256, HS384, HS512 (HMAC-SHA), RS256, RS384, RS512 (RSA), and ES256, ES384, ES512 (ECDSA). The algorithm is declared in the header's 'alg' field.
Anyone can create a JWT with any claims they want and Base64URL-encode it to look legitimate. Decoding only shows you what a token claims — verifying its signature against the issuer's key is what confirms those claims are trustworthy.
Yes — refresh tokens are often also JWTs with the same three-part structure, so they decode the same way. Some systems use opaque (non-JWT) refresh tokens instead, which won't decode into readable JSON.
It means the token has expired and should no longer be accepted by a server enforcing expiry. This tool highlights expired tokens so you can quickly confirm expiry-related authentication failures.