Logo
Prompt Minds

JWT Decoder — Decode JSON Web Tokens Instantly

See what's inside a token — header, payload, claims and expiry — without sending it anywhere.

JWT टोकन के अंदर क्या है देखें — हेडर, पेलोड, क्लेम और एक्सपायरी, पूरी तरह प्राइवेट।

100% private — runs in your browser · Last Updated: October 2026
—

Verify an HMAC signature (optional)

Signatures are not verified unless you enter the secret (HMAC tokens only). RS/ES/PS tokens need the issuer's public key and are never verified here.
PDNob logoPDNob Your Lightweight AI-Powered PDF Editor Edit · Convert · Compress · OCR · AI Download for Desktop

Quick Tips

Anyone can read a JWT — don't put secrets in it
Decoding is not verification
Check exp, iss and aud on the server
Reject alg none
Prefer test tokens when debugging
All Tools
Advertisement

Quick Answer

Paste a JWT — the long string of three parts separated by dots — and the decoder shows its header (algorithm and type) and payload (the claims) as readable JSON. Dates like exp and iat are converted to real dates, and you see at once whether the token has expired. Decoding does not prove a token is genuine: to check an HS256 signature, enter the secret. Your token never leaves your browser.

What is a JWT Decoder?

A JWT Decoder (JWT डिकोडर) reads a JSON Web Token and shows what is inside it. JWTs are everywhere in modern apps: when you log in to a website or mobile app, the server often gives your browser a token like eyJhbGciOiJIUzI1NiIs… that proves who you are on later requests. APIs accept them in the Authorization: Bearer header, single sign-on systems such as Google, Firebase, Auth0 and AWS Cognito issue them as ID tokens, and webhooks and microservices pass them between servers.

Each token carries claims — the user's ID, their email or role, who issued the token, who it is meant for and when it expires — encoded in Base64URL so it can travel safely in URLs and headers. This free decoder turns a token back into readable JSON, explains the standard claims, converts the timestamp claims into real dates, tells you whether the token has expired, warns about unsafe settings and, for HMAC-signed tokens, can verify the signature with your secret. All of this happens in your browser; the token is never uploaded.

Key Features

  • Header and payload decoded and pretty-printed as JSON.
  • UTF-8 safe — names and claims in Hindi or other languages display correctly.
  • Claim table with plain-English meanings for registered claims.
  • Dates — exp, iat, nbf and auth_time in UTC and local time, with “in 2 h” or “3 days ago”.
  • Status — expired, not yet valid or still valid.
  • Warnings for alg none and for encrypted (JWE) tokens.
  • HMAC verification for HS256, HS384 and HS512.
  • “Bearer ” prefix removed automatically.

How to Decode a JWT — Step by Step

  1. Copy the token from your browser's developer tools, an API response, a cookie or a log.
  2. Paste it into the box; the result appears instantly.
  3. Read the status line for the algorithm and expiry.
  4. Inspect the header and payload JSON and the claim table.
  5. To verify an HS256/384/512 token, enter the shared secret. The sample token on this page is signed with the secret promptminds-secret, so you can try it.

The Three Parts of a JWT

PartContainsExample (decoded)
HeaderAlgorithm and token type{"alg": "HS256", "typ": "JWT"}
PayloadClaims about the user and the token{"sub": "1234567890", "name": "Prompt Minds", "exp": 4102444800}
SignatureHMAC or digital signature over header.payloadBinary data, Base64URL-encoded

The three parts are joined with dots. Because only the signature depends on a secret or private key, anyone can decode the first two parts — which is why JWT payloads must never contain passwords, card numbers or other secrets.

Registered Claims Explained

ClaimNameMeaning
issIssuerWho created the token (e.g. your auth server URL)
subSubjectWho the token is about — usually the user ID
audAudienceWhich app or API should accept it
expExpiration timeAfter this time the token must be rejected
nbfNot beforeBefore this time the token must be rejected
iatIssued atWhen the token was created
jtiJWT IDUnique ID, useful to prevent replay

Time claims are Unix timestamps in seconds. For example, exp 4102444800 is 1 January 2100 00:00 UTC — the far-future expiry used in this page's sample token. Our Timestamp Converter converts any such value.

Decoding vs Verifying

Decoding answers “what does this token say?”. Verifying answers “can I trust what it says?”. To verify, a server recomputes the signature over header.payload with the shared secret (HS256) or checks it with the issuer's public key (RS256, ES256), then validates exp, nbf, iss and aud. Only after all checks pass should it act on the claims. This tool can perform the HMAC part of verification for testing; for public-key algorithms, use your server library and the issuer's JWKS endpoint.

Common JWT Security Pitfalls

  • Accepting alg none — an attacker can strip the signature. Always require a specific algorithm.
  • Algorithm confusion — servers that accept both RS256 and HS256 may be tricked into using the public key as an HMAC secret. Pin the expected algorithm.
  • Weak HMAC secrets — short secrets can be brute-forced from a captured token. Use at least 256 random bits.
  • Long-lived tokens — keep access tokens short (minutes to hours) and use refresh tokens.
  • Storing tokens in localStorage — any XSS can steal them; consider HttpOnly cookies.
  • Sensitive data in the payload — it is readable by anyone who sees the token.

Where to Find a JWT

  • Browser developer tools → Network tab → a request's Authorization header.
  • Application / Storage tab → cookies, localStorage or sessionStorage.
  • API responses from login endpoints (often access_token and id_token fields).
  • Mobile app logs or proxy tools while debugging.
  • Firebase — await user.getIdToken() returns an ID token you can paste here.

How This Decoder Works

The tool removes a leading “Bearer ”, splits the token on dots, converts each Base64URL part back to bytes (adding padding and swapping - and _ for + and /), decodes the bytes as strict UTF-8 and parses them as JSON. Errors are reported precisely — for example if a part contains characters that are not Base64URL or is not valid JSON. Expiry status is calculated against your device's clock. For HS256/384/512 it imports your secret with the Web Crypto API, computes the HMAC of header.payload and compares the Base64URL result with the token's signature.

Access Tokens, ID Tokens and Refresh Tokens

Login systems based on OAuth 2.0 and OpenID Connect usually issue several tokens. The ID token is always a JWT and describes the user (name, email, sub) for the client app. The access token is sent to APIs; it is often a JWT but can be an opaque random string that only the issuer understands — those cannot be decoded here. The refresh token is long-lived, should be stored securely, and is exchanged for new access tokens when they expire. If a token will not decode, it is probably opaque rather than broken.

Common Uses

  • Debugging “401 Unauthorized” errors by checking exp, aud and iss.
  • Checking which roles or scopes a token grants.
  • Comparing ID tokens from different identity providers.
  • Verifying HS256 webhook or service tokens during development.
  • Learning how authentication tokens are built.
  • Confirming clock-skew issues between servers.
  • Checking that a new release still issues tokens with the expected claims.

Common Mistakes to Avoid

  • Trusting decoded claims in the browser for security decisions — always verify on the server.
  • Pasting production tokens into unknown websites — a token is a temporary password.
  • Treating exp as milliseconds — JWT times are in seconds.
  • Ignoring clock skew — allow a minute or two of leeway between servers.
  • Using the same secret everywhere — rotate and scope secrets.

Troubleshooting

  • “A JWT has 3 parts” — the token was cut off or has extra text; copy it again in full.
  • “not valid Base64URL JSON” — the token may be an opaque access token, not a JWT.
  • Signature does not match — wrong secret, a modified token, or the secret is Base64-encoded on the server (enter the decoded secret).
  • Expired but the app still works — the app may refresh tokens automatically or check a different token.

Quick Glossary

  • JWT: JSON Web Token (RFC 7519).
  • JWS / JWE: signed / encrypted token formats.
  • Claim: a piece of information in the payload.
  • HMAC: keyed hash used by HS256/384/512.
  • JWKS: a JSON set of public keys used to verify RS/ES tokens.
  • Bearer token: a token that grants access to whoever holds it.
  • Base64URL: URL-safe Base64 without padding, used for every JWT part.
  • Clock skew: small time differences between servers that can make fresh tokens look expired.

Why Use This JWT Decoder?

It decodes any JWT instantly, explains claims and expiry in plain language, flags dangerous settings, verifies HMAC signatures and keeps your token on your device — free and without sign-up.

JWT Decoder — Key Facts

DecodesHeader and payload (Base64URL → UTF-8 JSON)
Claimsiss, sub, aud, exp, nbf, iat, jti and custom claims
Datesexp, iat, nbf shown in UTC and local time with expiry status
VerifyHS256 / HS384 / HS512 with your secret (Web Crypto)
Not verifiedRS / ES / PS signatures (need the issuer's public key)
PrivacyRuns in your browser — the token is never uploaded

Frequently Asked Questions

What is a JWT?

A JSON Web Token (JWT) is a compact, URL-safe way to send claims — such as a user ID and expiry time — between systems. It has three Base64URL parts separated by dots: a header, a payload and a signature. It is defined in RFC 7519.

Is a JWT encrypted?

Usually not. A normal signed JWT (JWS) is only encoded, so anyone who has it can read the header and payload — exactly what this decoder does. The signature prevents tampering, not reading. Never put passwords or sensitive personal data in a JWT payload.

Does decoding prove the token is valid?

No. Decoding only reads the contents. A token is trustworthy only if its signature is verified with the correct key and its claims (expiry, issuer, audience) are checked by your server.

How do I check if a JWT has expired?

Look at the exp claim, which is a Unix timestamp in seconds. The decoder converts it to a date and tells you whether it is in the past (expired) or the future, and how long ago or how soon.

Can this tool verify the signature?

Yes for HMAC tokens (HS256, HS384, HS512) if you enter the shared secret. Tokens signed with RS256, ES256, PS256 and similar use public-key cryptography; verify those on your server with the issuer's public key or JWKS.

Is it safe to paste my token here?

The decoding and verification happen entirely in your browser and nothing is sent to a server. Even so, treat live tokens like passwords: prefer test tokens, and never paste production tokens into tools you don't trust.

What does alg none mean?

It means the token is unsigned. Accepting such tokens has caused serious security holes, so the decoder warns you. Servers should reject alg none unless they explicitly expect unsigned tokens.

What are iat, nbf and exp?

iat is when the token was issued, nbf is the time before which it must not be accepted, and exp is when it expires. All are seconds since 1 January 1970 UTC.

Why does my token have five parts?

A five-part token is an encrypted JWE. Its payload cannot be read without the decryption key, so it cannot be decoded here.

What is Base64URL?

Base64URL is Base64 with - and _ instead of + and /, and without = padding, so tokens are safe in URLs and headers.

Can I decode tokens from Firebase, Auth0, Cognito or Google?

Yes. ID tokens and access tokens from these providers are standard JWTs. You will see claims like iss, aud, sub, email and auth_time.

Is the JWT Decoder free?

Yes. It is free, unlimited and needs no sign-up.

See Inside Any Token!

Header, payload, claims and expiry — decoded privately in your browser.

Explore More Prompt Minds Tools

JWT Decoder works great alongside our other free tools. Every Prompt Minds tool runs entirely in your browser — no sign-up, no uploads, no watermarks. Browse all free tools.

Prompt Minds AI Assistant
Namaste! How can I help you with JWT Decoder?