Skip to content

不透明令牌

IAM 发行的 accessToken不透明令牌(opaque token):它本身不可读、不含用户信息。服务端通过 IamBearerTokenFilter 持令牌去 Redis 换取 IamPrincipal,避免把敏感身份数据编码进令牌。

  • TokenRecord(record):(sessionId, principal, expiresAt),是 Redis 中令牌对应的主体记录。
  • AuthSession(record):(sessionId, userId, clientType, clientInstance, ipAddress, userAgent, loginAt, lastSeenAt, expiresAt, revokedAt, logoutAt, revokeReason),提供 revoked()/revoke(at,reason)/touch(at)
  • 令牌 TTL 由 iam.token.ttl(默认 8h,必须为正)控制;Redis 键前缀由 iam.token.redis-prefix(默认 iam,非空)配置。
请求携带 Authorization: Bearer <accessToken>
→ IamBearerTokenFilter
→ Redis 查 TokenRecord
→ 取出 IamPrincipal 注入安全上下文