refactor: 移除 Session 架构下已无用的 TokenVersion 即时吊销机制

- 删除 UserRepo.IncrementTokenVersion/FindTokenVersion 方法
- 从 userAuthStore/userAdminStore 接口移除 IncrementTokenVersion
- 删除 middleware.tokenVersionStore 接口(中间件不再查询 token_version)
- auth_service: DeleteAccount/InvalidateSessions 仅调用 DestroyByUID
- admin_service: UpdateUserStatus/ResetUserToken 仅调用 DestroyByUID
- FindByIDForAuth/FindByIDUnscoped Select 移除 token_version 列
- 新架构下登出/改密/封禁统一走 sessionManager.DestroyByUID,无需 token_version
This commit is contained in:
2026-05-30 23:38:42 +08:00
parent daf87f895b
commit d9ba1cdf28
5 changed files with 12 additions and 48 deletions

View File

@ -95,21 +95,15 @@ func (s *AdminService) UpdateUserStatus(operatorUID, targetUID uint, newStatus s
return err
}
}
// 修改状态必须立刻让已有 session 失效 + 递增 token_version向后兼容
if err := s.sessionManager.DestroyByUID(target.ID); err != nil {
return err
}
return s.userRepo.IncrementTokenVersion(target.ID)
// 修改状态必须立刻让已有 session 失效
return s.sessionManager.DestroyByUID(target.ID)
})
}
// ResetUserToken 强制下线:销毁所有 session + 递增 token_version
// ResetUserToken 强制下线:销毁所有 session
func (s *AdminService) ResetUserToken(operatorUID, targetUID uint) error {
return s.checkAndOperate(operatorUID, targetUID, func(_ *model.User, target *model.User) error {
if err := s.sessionManager.DestroyByUID(target.ID); err != nil {
return err
}
return s.userRepo.IncrementTokenVersion(target.ID)
return s.sessionManager.DestroyByUID(target.ID)
})
}