alg: none token accepted
Older libraries treat `alg: none` as valid if you forget to enforce an allow list.
Fix: The debugger flags `alg: none` as a danger and refuses to mark such tokens as verified — even when you provide a secret.
Search tools and pages.
Decode JWTs, verify HMAC, RSA, and EC signatures (paste secret/PEM or fetch JWKS), inspect claims, and visualize the exp/nbf/iat timeline
sidebar • 160x600
Written by Giorgos Kostas. Last reviewed:
JWT Debugger decodes one or more JSON Web Tokens, verifies the signature against a shared secret, public-key PEM, or remote JWKS, and lays out every standard and custom claim with human-readable explanations.
Multi-token mode lets you paste an `id_token`, `access_token`, and `refresh_token` together — typical of an OAuth/OIDC session — so you can compare audiences, scopes, and expiries side by side.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiaWF0IjoxNzYwMDAwMDAwfQ.signaturePlaceholder
Header { alg: HS256, typ: JWT }
Payload { sub: 1234567890, name: Jane Doe, iat: 1760000000 }
Verify ✗ signature does not match (or no secret provided)Older libraries treat `alg: none` as valid if you forget to enforce an allow list.
Fix: The debugger flags `alg: none` as a danger and refuses to mark such tokens as verified — even when you provide a secret.
An accidental whitespace character in the token breaks the signed payload.
Fix: The debugger trims whitespace and warns when the token contains characters outside Base64URL.
The JWKS endpoint may not allow cross-origin requests from the browser.
Fix: The debugger fetches via a server-side proxy so JWKS retrieval works regardless of CORS.
All algorithms in the `jose` library: HMAC (HS256/384/512), RSA (RS256/384/512, PS256/384/512), and EC (ES256/384/512, ES256K). Symmetric algorithms accept a UTF-8 secret; asymmetric algorithms accept a PEM-formatted public key or a JWKS URL.
Paste the JWKS URL once; the debugger fetches the keys via our server proxy (so CORS isn't an issue), then matches the token's `kid` against the JWKS entries. Multiple tokens that share an issuer reuse the same JWKS without refetching.
Decoding and signature verification run client-side using the WebCrypto API (via `jose`). Only JWKS URLs are fetched through the server proxy, and only the URL is logged for rate limiting — never the token or secret.
A horizontal bar with three markers: `iat` (issued at), `nbf` (not before), and `exp` (expires). The current time is overlaid so you can see at a glance whether a token is too new, valid, or expired — and by how much.
Multi-token mode shows three tokens together. To simulate rotation, paste the new token after each refresh; the debugger highlights changed claims so you can confirm the issuer rotates `iat` and `exp` correctly without leaking other claims.
This page replaces the older JWT Decoder slug — same URL, expanded scope. Decoding is still the default; verification, JWKS, and the timeline are additive features.
Pair the debugger with other security and web-platform tools. You can also browse the full Security & Web Hardening category for more options.
Build a Content Security Policy header from per-directive cards with chip-style sources, presets, and a live header + meta-tag preview
Send a real OPTIONS preflight and the actual request from a server proxy and inspect the per-rule CORS verdict for any origin
Probe a host:port and render the full TLS certificate chain with subject, issuer, SAN, key, signature, fingerprints, and days-until-expiry
Paste response headers to audit HSTS, CSP, CORS, X-Powered-By disclosure, and Set-Cookie flags
Parse a URL into scheme, host, port, path, query parameters, fragment, and origin — fully client-side
Encode or decode Base64 strings
Generate MD5, SHA1, SHA256, SHA512 hashes
Passive Access-Control-Allow-Origin matcher — paste a header value plus a list of origins to confirm wildcard, scheme, and subdomain rules
Encoding
Learn why Base64 output breaks because of padding, Unicode strings, URL-safe alphabets, and data URL prefixes.
Security
A practical checklist for checking JWT claims, expiration, audiences, issuers, algorithms, and signature verification.
Developer Workflow
Small tasks like formatting JSON, decoding tokens, and escaping strings waste time because hidden assumptions matter.
Decode tokens, verify signatures (HMAC, RSA, EC) with a secret, PEM, or JWKS, and read the iat / nbf / exp timeline.
content bottom • up to 300x250