Application 2026-07-11 ⏱ 3 min read

Access Token Validation and Revocation: Introspection, JWT AT, and Revocation

Compares the two access token approaches (opaque + Introspection / JWT access tokens) and how each is validated, plus revocation via Token Revocation. Covers RFC 7662, RFC 9068, and RFC 7009.

Read in: ja
Access Token Validation and Revocation: Introspection, JWT AT, and Revocation

Overview

How does a resource server that receives an access token judge whether that token is valid? Access tokens come in two broad approaches, and both the validation method and how revocation takes effect differ.

This post compares the validation methods of opaque tokens + Token Introspection (RFC 7662) and JWT access tokens (RFC 9068), and organizes the revocation mechanism via Token Revocation (RFC 7009).

The related RFCs are as follows.

Two access token approaches

Access tokens come in two kinds.

Opaque + Token Introspection (RFC 7662)

A resource server cannot judge the contents of an opaque token on its own. So it queries the AS's introspection endpoint to get the token's state and metadata.

sequenceDiagram participant C as Client participant RS as Resource Server participant AS as Authorization Server C->>RS: Bearer opaque token RS->>AS: POST /introspect (token=...) AS-->>RS: { "active": true, "scope": "...", "exp": ... } RS-->>C: Protected resource (if active)

The most important field of the response is active; true means valid, false means invalid. Other fields include scope, sub, exp, client_id, and aud. The introspection endpoint requires client authentication.

JWT access token (RFC 9068)

A JWT access token contains the necessary information (sub, scope, exp, aud, etc.) in the token itself. If a resource server verifies the signature, it can check locally without querying the AS.

The main points defined by RFC 9068.

Comparison of the two approaches

graph TB subgraph "opaque + Introspection" O1[Receive token] --> O2[Query the AS] O2 --> O3[Check active] end subgraph "JWT AT" J1[Receive token] --> J2[Verify signature locally] J2 --> J3[Check aud/exp] end
Aspect opaque + Introspection JWT AT
Validation Query the AS Local validation
Immediate revocation Works Hard (valid until exp)
Scalability The AS can be a bottleneck Scales well
Network load High (query every time) Low

Token Revocation (RFC 7009)

RFC 7009 defines a revocation endpoint for explicitly revoking tokens. Clients revoke tokens on logout, password change, or token leakage.

POST /revoke
token=45ghiukldjahdnhzdauz&token_type_hint=refresh_token

Summary

References

Tags: OAuth Authorization
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ Support

If you enjoy this blog, consider supporting it. Every bit helps keep it running!


Related Articles