users 表加 session_generation 列。get_user_by_token 缓存命中后回查 DB generation,不匹配则逐出缓存并视为未登录,消除降级/封禁用户的权限残留 窗口(H2)。新增 invalidate_user_sessions 用于 bump generation,当前仓库 无运行时角色变更入口,作为未来用户管理功能的基础设施预留。 - 迁移 012:ADD COLUMN IF NOT EXISTS session_generation INT DEFAULT 0 - User/SessionUser 同步加字段,From<User> 如实传递 - 缓存校验走主键查询,亚毫秒级
7 lines
407 B
SQL
7 lines
407 B
SQL
-- 会话世代号:用户角色/封禁状态变更时 bump 此列,使该用户所有已签发 session
|
||
-- 立即失效(get_user_by_token 校验世代不匹配则视为未登录)。
|
||
-- 默认 0,向后兼容。
|
||
ALTER TABLE users ADD COLUMN IF NOT EXISTS session_generation INT NOT NULL DEFAULT 0;
|
||
|
||
COMMENT ON COLUMN users.session_generation IS '会话世代号,变更时 +1 使旧 session 失效';
|