← [ BACK_TO_NOTES ]

Redis Session Authority

解释 Redis 如何作为在线 Session 撤销权威,与 JWT 凭证验证共同组成 Hybrid Auth,并区分 Session miss、Redis failure 与 secondary index。

#concept #growing #backend #security #redis

[!info] related notes

Redis Session Authority

一句话定义

Redis Session Authority 是让服务端以 session: 等在线状态决定一个已签发凭证当前是否仍被认可的模式;JWT 验签证明凭证有效,Session authority 证明授权尚未被撤销。

核心不变量

valid JWT
≠
live authorization

典型链路:

Bearer JWT
→ verify signature / claims
→ extract sid
→ GET session:<sid>
   ├─ hit   → continue
   ├─ miss  → 401
   └─ error → 503 / fail closed

Logout / revoke:

DEL session:<sid>

可以让尚未到 exp 的 JWT 立即失去在线授权。

Miss 与 Error

Session miss

Redis 正常返回 Key 不存在:

已知 Session 不存在 / 已过期 / 已撤销
→ 401

Redis unavailable

连接超时、服务不可用等:

无法判断 Session 到底存在还是不存在
→ 不应假装 miss,也不应跳过检查
→ fail closed

在 BodySense 中表现为 503 更能准确表达“授权依赖不可用”。

Authority 与 Secondary Index

session:<sid>
= authority

user_sessions:<uid>
= reverse/secondary index

后者可以短时间含 stale member;最终合法性必须重新检查 session:,不能因为 sid 仍在 Set 里就认为 Session 有效。

为什么 Redis 适合

Session authority 通常具有:

  • 高频读取;
  • 短/中期生命周期;
  • TTL;
  • 立即 revoke;
  • 多实例共享;
  • 原子状态转换;
  • 不需要复杂关系查询。

这使 Redis 很适合作为在线状态层。

持久化与可用性边界

Redis 中 authority 丢失通常不会让已撤销用户重新获得权限,但可能造成:

  • 提前掉登录;
  • Refresh 状态丢失;
  • 大量 401/503;
  • 安全控制语义变化。

因此认证 Redis 不能按照普通 disposable cache 的 eviction 思路管理。

创建于 2026/9/18 更新于 2026/9/30
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本