Guide
Decoding a JWT does not verify its signature
Learn what a JWT decoder reveals, which checks are still missing, and why unverified claims must never authorize an action.
by Tools in a Tab · Published on · Reviewed on
Short answer
Decoding a JWT only turns its Base64URL segments into readable information. It does not prove that the issuer is authentic, the signature is valid, or the token should be accepted. Before authorizing anything, the server must verify cryptography, algorithm, issuer, audience, and time claims under its own policy.
What a decoder does
A signed JWT in compact form commonly has three segments:
header.payload.signature
The first two can be decoded without a key. Anyone can therefore read—and also
create—a header and payload claiming, for example, "role":"admin". Seeing
that data on screen says nothing about whether the third segment contains a
signature from the expected issuer.
Tools in a Tab’s JWT decoder is for local inspection of structure and claims. It explicitly states that it does not verify signatures. Avoid pasting production tokens into services you do not control; a token may reveal identifiers or permissions even when its contents are not encrypted.
What the relying system must verify
RFC 8725 collects JWT security best practices. Important checks include:
- allow only expected algorithms instead of trusting the token’s choice;
- verify the signature with the correct key;
- require
issto identify the expected issuer; - require
audto include the correct recipient; - enforce
exp,nbf, and protocol-specific claims; - use mutually exclusive validation rules for JWT types that must not be mixed.
A maintained library can perform these operations, but only with a secure configuration. “The function returned no error” is not enough unless you know which algorithms, keys, and claims it required.
A correct diagnostic flow
If a payload says exp is 1786204800, the
Unix timestamp converter can explain the
date. That conversion only interprets the number. Actual acceptance requires a
verifier to confirm the signature first and then compare exp with the
server’s clock and allowed tolerance.
Practical rule
Decode to inspect and debug. Perform complete cryptographic verification in the component making the decision before you trust the data. Never grant access from claims that were merely read from a payload.