Toint 在 OIDC/Oauth2 统一认证中心下 Access Token 选型求建议:JWT vs opaque token 中发帖
场景背景
我们正在构建统一认证中心,业务系统作为资源服务器接入。
架构约束:前后端分离(业务侧不依赖 Cookie),无 API 网关层。
网络隔离:资源服务器无法直连或共享认证中心的 Redis/DB,只能通过标准 HTTP 接口交互。
核心需求
写/敏感接口(如改密、封禁、踢下线):要求状态变更 秒级生效。
普通读接口:允许存在短暂的数据滞后。
现有方案的权衡
方案 A:Opaque Access Token + Introspection (RFC 7662)
优点:语义接近中心化 Session,撤销和踢人控制天然精准。
缺点:业务侧需请求认证中心验证 Token(虽可做几秒缓存),但认证中心仍是链路上的性能瓶颈。一旦网络抖动或 OP 挂掉,影响面巨大;且缓存时长与“生效延迟”之间存在难以两全的取舍。
方案 B:JWT Access Token (短时效)
...