Input

Output

Formatted result will be displayed here

How do you decode a JWT for debugging?

Decoding a JWT means splitting it at the dots and Base64URL-decoding the middle part to reveal the claims that drive authorization decisions. In an auth debugging session you usually care about the subject, expiry, issuer, and audience: who the token says the user is, when it goes stale, and which backend it was minted for. This tool highlights those fields and flags common issues like an already-expired exp or a missing iss.

Use Cases

Diagnose 401 responses

An auth failure is often a stale token; decode to check whether exp is in the past before chasing other causes.

Verify issuer and audience

A valid signature means little if iss or aud is wrong. Decode to confirm the token was minted for the service you are calling.

Check scopes and roles

Roles live in claims like scope or role. Decoding surfaces them so you can tell why an authorized request was denied.

Compare old and new tokens

When rotating an identity provider, decoding each side reveals which claims changed and whether your backend tolerates the shift.

FAQ

Can I decode without the signing key?

Yes. The payload is just Base64URL-encoded JSON, so reading it does not require the secret or public key.

How do I know if the token is expired?

The exp claim is shown next to a human-readable local time so you can see at a glance whether it is still valid.

What do iss and aud mean?

iss is the token issuer, typically the auth server URL; aud is the intended audience, usually your API identifier.

Is it safe to paste production tokens?

Decoding happens entirely in your browser, but pasting live tokens is still a habit worth avoiding when screen sharing.