What is a JWT?
A JSON Web Token (JWT) is a compact, URL-safe way to represent claims between two parties. It usually has three Base64URL segments — header, payload, and signature — separated by dots. Developers use JWTs for OAuth access tokens, OIDC ID tokens, session cookies, and API authentication.
This workbench lets you decode claims instantly, mint new tokens with HMAC or asymmetric keys, and verify signatures locally. For production issuers, you can resolve JWKS via OIDC discovery so you can validate tokens against the issuer's published public keys without pasting PEMs by hand.
How to use this tool
- Paste an encoded JWT into the Decode tab (or start from the sample token).
- Inspect header and payload claims, then verify with a shared secret, PEM/JWK, or issuer JWKS URL.
- Switch to Generate to craft a header/payload, pick an algorithm (HS256, RS256, ES256), sign, and optionally send the token back to Decode.
Frequently asked questions
Is my JWT sent to a server?
Decoding and local verify/sign stay in your browser using WebCrypto and jose. Only optional OIDC/JWKS discovery may fetch public metadata through a CORS-safe proxy — your private keys and full tokens are not stored.
Which algorithms are supported?
HS256 (HMAC), RS256 (RSA), and ES256 (ECDSA) for signing and verification, plus JWKS-backed verify for issuer-published keys.
Can I validate an OIDC ID token?
Yes. Point the verifier at the issuer's discovery or JWKS URL, then check signature and standard claims locally in the workbench.