Anatomy of a JWT
A JWT (RFC 7519) is three Base64URL strings joined by dots: header (algorithm and type), payload (the claims) and signature. The first two are just encoded JSON — anyone holding the token can read them, which is exactly what this page does. Never put secrets in a JWT payload.
Decoding is not verifying
The signature proves the token was issued by someone holding the key and that nobody changed it. To check it, paste the shared secret (HS256/384/512) or the issuer’s PEM public key (RS, PS and ES algorithms) into the optional Verify box. Verification runs in your browser with the Web Crypto API, and the key is never transmitted. The sample token is signed with the secret codeclean-demo-secret — try it, then change one character and watch verification fail. In production, always verify on your server with a maintained library.
Standard claims
| Claim | Meaning |
|---|---|
iss | Issuer — who created the token |
sub | Subject — usually the user ID |
aud | Audience — who the token is for |
exp | Expiry time (Unix seconds) |
nbf | Not valid before |
iat | Issued at |
jti | Unique token ID |