JWT Decoder

Inspect tokens locally — no verify, decode only
Status

Header

Payload

Algorithm
Expires
Issued
Issuer

Decode ≠ verify

Decoding shows the CLAIMS — but proves nothing. An attacker can decode, change \"role\" to \"admin\", and re-encode in 30 seconds. Always verify the signature on the server with the secret/key. Never trust decoded claims client-side for authorization decisions.

Related tools

JWT anatomy

HEADER.PAYLOAD.SIGNATURE
│       │       │
│       │       └─ HMAC(RSA/ECDSA) of (header.payload, secret)
│       └─ Claims: {sub, iat, exp, aud, iss, jti, custom...}
└─ {alg: HS256 | RS256 | ES256..., typ: JWT}
Standard claims: sub subject / iss issuer / aud audience / exp expiration / iat issued-at / nbf not-before / jti unique ID (for revocation).

Frequently asked questions