JWT Decoder

Decode JWT header and payload locally — no secret, no upload.

Processed locally — nothing is uploaded

About JWT Decoder

Decoding is not verification. A JWT payload is Base64-encoded, not encrypted, so anyone holding the token can read it, and reading it here proves nothing about whether the signature is valid. Treat any production token you paste anywhere as exposed.

Decode a JSON Web Token's header and payload to inspect its claims, issuer, audience and expiry. JWTs are widely used for authentication and API authorisation, and being able to read them quickly is essential when debugging login flows.

The payload carries claims like issuer, audience and expiry, which is usually enough to explain why a login failed. An expired token and one signed with the wrong key look identical to the user, but the exp claim separates them in seconds.

Learn how this works

Frequently asked questions

Is my token sent anywhere?

No. The token is decoded locally in your browser. No secret is needed and the token is never uploaded or logged. Decoding a JWT requires only Base64URL decoding, which is a purely local, offline operation with no network requests. Your token remains in your browser's memory and never leaves your device, making it safe to inspect tokens containing production secrets or sensitive claims. This privacy-first approach is ideal for debugging authentication issues in development or inspecting tokens from staging and production without risking exposure.

Does this verify the signature?

No — it decodes and displays the header and payload so you can read the claims. Signature verification requires the secret or public key on your server. Decoding a JWT reveals its contents, but signature verification ensures the token hasn't been tampered with after creation — something only your authentication server can do with the signing key. For debugging purposes, reading the contents is usually sufficient to understand token structure and claims. For actual authentication or authorization, always validate the signature on the server before trusting the token's contents.

Why can I read the payload without a key?

A JWT payload is only Base64URL-encoded, not encrypted. Anyone can read it, which is why you should never put secrets inside a token. Base64URL encoding is a reversible text encoding (like converting to/from hex), not a security measure — it's only used to safely transmit binary data through text channels. Any attacker who intercepts a JWT can decode it and read every claim it contains, including user ID, roles, and permissions. This means JWTs are safe for transmitting user information (since the server trusts its own signed tokens), but they must never contain passwords, API keys, or other confidential data.

More JWT Decoder tools

Related tools