JWT Decoder

Paste a JWT to view its header and payload as formatted JSON; signature verification is intentionally out of scope on this page.

Result

Ready.

Inspect JWT claims before you trust them

Authorization bugs often trace to misunderstood claims: a token decodes fine yet lacks the role your API expects. Reading header.alg and payload scopes locally helps separate format problems from policy problems.

Header algorithm hints

The alg field declares signing methodβ€”HS256, RS256, and ES256 are common. If alg is none or unexpected, halt and review issuer documentation before accepting the token in production middleware.

Expiry and clock skew

Compare exp to current epoch time, allowing a small skew window your gateway already implements. Short-lived access tokens paired with long refresh tokens are normal; confusing the two causes false "already expired" reports.

FAQ

Does this validate the JWT signature?
No. Decoding only Base64url-unpacks header and payload. Trust decisions still require verifying the signature with the issuer's public key or shared secret in your application.
Is it safe to paste production tokens?
Decoding is local, but tokens are bearer credentials. Prefer expired or redacted samples in shared screens; never commit live refresh tokens to tickets.
What are common payload fields?
sub (subject), exp (expiry), iat (issued at), aud (audience), and scope arrays appear in OAuth access tokens. Missing exp or far-future exp values are worth flagging in security review.