A JWT can pass signature and expiry checks and still be denied access. Those checks help establish that a token is acceptable; the API must also verify that it was issued for that API and decide whether its subject may perform the specific action requested.
What “valid JWT” does—and does not—tell you
A JSON Web Token (JWT) carries claims. Whether it is valid depends on the token profile and the application using it: decoding the payload only reveals data, and a valid signature alone does not decide whether a request should be allowed. RFC 7519 explicitly leaves the claims required for validity dependent on context: RFC 7519, JSON Web Token (JWT).
It helps to separate two decisions:
- Token validation: Is this credential acceptable for this service, and what issuer, subject, and claims does it represent?
- Authorization: May that subject perform this operation on this resource now, under the application’s policy?
A successful answer to the first question is not automatically a yes to the second. Also, not every JWT is an OAuth access token. The requirements in RFC 9068 apply specifically to JWT-formatted OAuth 2.0 access tokens; OAuth does not require access tokens to use JWT format. See RFC 9068, JWT Profile for OAuth 2.0 Access Tokens.
Why an API can reject a correctly signed token
The token was issued for a different API
The aud (audience) claim identifies the token’s intended recipient or recipients. A token intended for one service should not be accepted by another just because both trust the same issuer. For JWT access tokens under RFC 9068, the resource server must reject a token whose audience does not include it. RFC 8725 likewise calls for audience validation when an issuer creates tokens for multiple applications: RFC 8725, JSON Web Token Best Current Practices.
#1 Best Overall
- Made in USA - Proudly produced in Ohio by a Veteran-owned business
- Comprehensive Coverage: This BookFactory log book includes essential fields such as post/shift, time of change, date, weather conditions, and a designated space for detailed notes. This ensures that all relevant information is captured and easily accessible.
- Sturdy Cover: The trans-lux cover protects the log book from wear and tear, ensuring its longevity and maintaining the integrity of your recorded data.
- Essential Security Tool: This log book is an indispensable tool for any organization that values security and accountability. It helps to prevent misunderstandings, improve communication, and ensure a smooth transition between shifts.
- Wire-O with Trans-lux cover, 100 Pages, Dimensions 8.5" x 11" - (Security-Pass-Down) Reorder SKU: LOG-100-7CW-PP(Security-Pass-Down)
RFC 8707 describes OAuth resource indicators, which let a client identify the intended resource so the authorization server can restrict the token’s audience: RFC 8707, Resource Indicators for OAuth 2.0. RFC 9700 says each resource server should verify on every request that the token was meant for that server: RFC 9700, Best Current Practice for OAuth 2.0 Security.
The token is expired or otherwise outside its time window
A token can have a good signature and still be unusable because its validity period has ended. RFC 7519 defines exp as the time on or after which the token must not be accepted. Depending on the profile, the server may also need to enforce other time claims, such as nbf, and account for clock handling consistently. For JWT access tokens, RFC 9068 requires rejecting expired tokens.
Rank #2
- Made in USA - Proudly produced in Ohio by a Veteran-owned business
- This BookFactory log book is for security guards in any sector or business. You can report location, circumstances and report number.
- There are spaces to log the individual's names address, description and other identifying information. There are also spaces to note others involved, notes, and vehicle information if one was involved
- Wire-O, 100 Pages, Dimensions 3.5" x 5.25"
- Reorder SKU: LOG-100-M3CW-PP(Security-Report)
The subject does not map to an account the application recognizes
A syntactically valid sub claim is not proof that the application has a corresponding user or service account. RFC 8725 says an application must validate that the subject is valid for that application, whether identified directly or as an issuer-subject pair. A token can therefore be well-formed and trusted cryptographically while its subject is unknown or unsuitable for the application.
The subject lacks permission for this action
Even when the token is intended for the API and identifies a recognized subject, it may not grant the required scope or entitlement. The caller might be permitted to read a resource but not update it, or to access one tenant but not another. Claim names and meanings—including scope—depend on the token profile and deployment; JWT itself does not define a universal permission scheme.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallRank #3
Application policy or request context blocks the call
Authorization can depend on more than token claims: the requested resource, tenant, ownership, account status, or other contextual facts may matter. RFC 9068 says a resource server should combine authorization claims, when present, with other available context to decide whether the current call should be allowed. The policy itself belongs to the application, not to a universal JWT rule.
How to check a JWT access token before granting access
For a request carrying a JWT access token, validate it in this order. Apply the profile and application rules relevant to your deployment; this is not a claim that every JWT uses the same required fields.
Rank #4
- Parse the expected format. Reject malformed input. Decoding a token is not validation: reading its claims does not establish that they are trustworthy.
- Verify cryptography and token type. Verify the signature with keys trusted for the expected issuer, and enforce the algorithm and token-type rules for the token profile. RFC 9068 requires signature validation with authorization-server keys and prohibits accepting
alg: nonefor its JWT access-token profile. - Check issuer and time claims. Confirm the issuer is one this service trusts and enforce
expand any applicablenbfor other time constraints. Do not accept an expired token. - Match the audience to this resource server. Reject a token intended for a different API; when an issuer serves multiple applications, the recipient needs to be distinguishable.
- Resolve the subject. Confirm the subject is valid for this issuer and application, rather than assuming any
substring is an account. - Make the authorization decision. Determine whether this subject has the necessary scope, entitlement, or other permission for this action on this resource, considering application policy and request context.
Distinguishing a token-validation failure from an authorization denial
A 401-style failure generally points to a credential the service cannot accept—for example, a bad signature, untrusted issuer, wrong audience, or expired token. A 403-style denial commonly means the request was understood but the authenticated principal is not allowed to carry it out. Exact status codes and error behavior depend on the API and its bearer-token handling; RFC 9068 points to bearer-token error handling for validation failures, while authorization policy remains application-specific.
| Check | What it asks | Typical issue |
|---|---|---|
| Integrity and token profile | Was the token signed and formed according to the expected profile? | Invalid signature or unacceptable algorithm |
| Issuer and audience | Did a trusted issuer create it for this API? | Untrusted issuer or token intended for another service |
| Time limits | Is it still within its accepted validity window? | Expired or not-yet-valid token |
| Subject mapping | Does the subject correspond to a valid identity here? | Unknown or unsuitable account |
| Permission and policy | May this subject perform this action on this resource in the current context? | Missing scope, entitlement, or policy condition |
Use the failure category to guide troubleshooting: an authorization denial is not fixed by re-signing an otherwise valid token, and a valid signature does not fix an audience mismatch. Inspect the API’s documented error response and server-side decision logs without exposing bearer tokens in logs or support requests.
Best Value
Standards requirements versus application choices
The cited standards establish important validation principles, but they do not prescribe one universal set of authorization claims or policies for every application. RFC 9068 specifies a profile for JWT OAuth access tokens and leaves the resource server’s detailed authorization checks outside that profile. RFC 8725 is an IETF Best Current Practice, whose recommendations reflect the state of guidance when published; implementers should check for current errata or updates before relying on it.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




