Developer Tool

JWT Token
Decoder

Paste any JWT to instantly decode the header, payload, and claims — with expiry status, security warnings, and human-readable timestamps.

🔒 100% client-side · Your token never leaves this browser
Try an example →
Token Lifetime
Header
Payload — Claims
Security Analysis
Signature (Base64URL)
Signature verification requires the server secret or public key and cannot be done client-side safely. Use your backend or a trusted library (e.g. jsonwebtoken in Node.js) to verify.
🔑

Paste a JWT token above to decode it

Format: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.signature

What is a JWT Token?

A JSON Web Token (JWT) is a compact, URL-safe method of representing claims between two parties. It is widely used for authentication and authorization in REST APIs, OAuth 2.0, and single-sign-on (SSO) systems.

A JWT has three parts separated by dots (.): the header (encoding algorithm), the payload (claims — user data, expiry, etc.), and the signature (integrity proof). Each part is Base64URL encoded.

The exp claim is a Unix timestamp that specifies when the token expires. The iat (issued at) and nbf (not before) claims are also Unix timestamps. This decoder converts them all to human-readable dates automatically.

JWT Decoder vs jwt.io — What's Different Here?

jwt.io is the most widely known JWT tool, but it has limitations that matter in real debugging situations. Here is what this decoder does differently:

Security analysis built-in. This decoder automatically flags dangerous configurations — alg:none, missing exp, expired tokens — so you spot problems immediately rather than needing to know what to look for.

Expiry timeline. Instead of just showing the raw exp Unix timestamp number, you see a visual bar showing what percentage of the token's lifetime has passed and exactly how much time remains.

Timestamp auto-conversion. Every Unix timestamp claim (exp, iat, nbf) is automatically converted to your local human-readable date — no need to copy the number into a separate Unix timestamp converter.

No tracking, no ads. CronRead developer tools have no analytics, no ads, and no data collection of any kind. Your tokens stay in your browser.

Where JWT Tokens Are Used

JWT tokens appear in virtually every modern web and mobile application. The most common uses are:

REST API Authentication — The server issues a JWT after login. The client sends it in the Authorization: Bearer <token> header with every request. The server validates the signature and reads the claims without a database lookup.

OAuth 2.0 & OpenID Connect (OIDC) — Identity providers (Google, Auth0, Okta, Keycloak) issue JWTs as ID tokens and access tokens. The sub claim is the user ID, email is the verified email, and aud is your application's client ID.

Microservices — A gateway issues a JWT after authenticating a request. Downstream services verify the token's signature using a shared public key — no inter-service auth call needed.

Debugging tip: If you see a JWT in a cookie, Authorization header, or URL parameter and want to quickly understand what it contains — paste it here. Common fields to check: exp (has it expired?), sub (which user?), scope (what permissions?), aud (is your service the intended audience?).

JWT Signing Algorithms — Reference

AlgorithmTypeKeyBest For
HS256Symmetric HMACShared secretSingle-service apps where one party signs and verifies
HS384 / HS512Symmetric HMACShared secretSame as HS256 but with stronger hash (384 or 512-bit)
RS256Asymmetric RSAPrivate key signs, public key verifiesDistributed systems, third-party token verification
RS384 / RS512Asymmetric RSAPrivate / public key pairHigher-security variants of RS256
ES256Asymmetric ECDSAEC private / public keySmaller tokens than RSA, mobile & IoT use cases
PS256RSA-PSSPrivate / public key pairFIPS-compliant environments requiring RSA-PSS
noneNo signatureNone⚠️ Never use in production — critical security vulnerability

JWT Decoder — FAQ

What is a JWT token?
A JSON Web Token (JWT) is a compact token used to securely transmit claims between parties. It has three Base64URL-encoded parts: header (algorithm), payload (claims), and signature. Used in OAuth, REST APIs, and SSO.
Is it safe to paste my JWT here?
Yes. This tool decodes entirely in your browser — nothing is sent to any server. That said, avoid pasting production tokens with sensitive data into any public tool as a general security practice.
Why can't I verify the JWT signature here?
Signature verification requires your server's secret key (for HS256) or public key (for RS256/ES256). Sharing your secret with a browser tool would be a major security risk. Use jsonwebtoken (Node.js), PyJWT (Python), or your backend framework to verify signatures.
What does "alg: none" mean and why is it dangerous?
The none algorithm means the token has no signature. Some vulnerable JWT libraries historically accepted these tokens as valid, allowing attackers to forge tokens. Always reject tokens with alg: none in production.
What are the standard JWT claims?
iss — Issuer
sub — Subject (user ID)
aud — Audience
exp — Expiry (Unix timestamp)
iat — Issued at (Unix timestamp)
nbf — Not before (Unix timestamp)
jti — JWT ID (unique identifier)
What is the difference between HS256 and RS256?
HS256 uses a shared secret (symmetric) — both signing and verifying use the same key. RS256 uses a public/private RSA key pair (asymmetric) — the server signs with the private key, clients verify with the public key. RS256 is more secure for distributed systems.

Related Developer Tools

ToolWhat you'll find
Unix Timestamp ConverterConvert the JWT exp/iat/nbf Unix timestamps to human-readable dates
YAML ↔ JSON ConverterConvert Kubernetes, GitHub Actions and Docker configs between YAML and JSON
Base64 Encoder / DecoderEncode or decode Base64 strings and files
Cron Expression GeneratorBuild cron expressions for your scheduled jobs
⚡ Open the Cron Expression Tool
Copied!