Input

Output

Formatted result will be displayed here

What is a JWT Decoder?

JSON Web Tokens (RFC 7519) look like gibberish but are really three Base64-encoded segments: header, payload, and signature. A JWT Decoder unpacks the first two so you can see the claims — who issued the token, who it's for, when it expires, and any custom fields your app put in. EasyRead does this entirely client-side, so you can safely paste production tokens without sending them to a third party.

Common use cases

Debugging auth flows

Grab the token your app just issued, paste it in, and confirm the claims, audience, and expiry look right.

Checking expiry quickly

EasyRead converts the exp timestamp to a readable local date so you know at a glance whether the token is still valid.

Exploring OAuth/OIDC providers

Paste tokens from Auth0, Okta, Cognito, Firebase, or Keycloak to understand exactly what each provider puts into the payload.

FAQ

Does this verify the signature?

No. Verification requires the signing secret or public key and is something your backend should do. EasyRead only decodes the header and payload for inspection.

Is it safe to paste real tokens?

Decoding runs entirely in your browser — nothing is transmitted or logged. That said, treat a live JWT like a password: once it's on your clipboard, be mindful of where it ends up.

What's in the header, payload, and signature?

Header: algorithm and token type. Payload: claims about the user (sub, iat, exp, custom roles, etc.). Signature: an HMAC or RSA proof that the token wasn't tampered with.

How do I read exp, iat, nbf?

They're Unix timestamps in seconds. EasyRead shows the human-readable date next to each. You can also cross-reference with the Timestamp Converter.

Does it handle all JWT algorithms?

Yes for decoding — decoding is algorithm-independent. Verifying signatures (HS256/RS256/ES256) is a separate, secret-dependent operation.