An attacker can construct a payload with any future exp value and Base64URL-encode it in seconds. The time comparison will pass because it is evaluating the assertion as written. Without a verified signature or MAC from a trusted issuer, there is no reason to believe the assertion. This is why the result remains next to a permanent “signature not verified” warning.
After cryptographic verification, the consumer still needs exact policy. It should allow only expected algorithms, select keys from a trusted configuration, match the issuer, identify itself in the audience, enforce required claims, and consider token type, subject, tenant, scope, nonce, revocation, replay, and maximum age. Different token kinds should have mutually exclusive validation rules where confusion is possible.
Never use a decoded jku, x5u, or other URL as permission to fetch a key from anywhere. Remote key retrieval needs trusted origins, HTTPS validation, redirect and network controls, caching rules, and key-selection policy. This page performs no remote lookup, and the algorithm label is displayed as untrusted text.
For a practical breakdown of what each stage establishes, read JWT decoding vs verification. Use the full JWT Decoder when header parameters, private claims, duplicate names, and signature bytes are the primary debugging target.
- Future exp
- An assertion about time, not evidence of who created the token.
- Verified
- The signature or MAC matches under a trusted algorithm and key.
- Accepted
- Verification plus every issuer, audience, time, replay, and application rule passes.
- Authorized
- The accepted identity is allowed to perform this specific action on this resource.