Session 使用缓存存储用户会话?

Session 使用缓存存储用户会话?,session,cakephp,caching,Session,Cakephp,Caching,我正在做一个项目,管理员可以删除其他用户的帐户 最近我遇到了一个问题:当管理员在用户登录时删除帐户时会发生什么?有人建议将用户数据存储在缓存系统中,以便随时删除,但我觉得这不太合适 我的想法是,用户身份验证数据应该始终存储在会话中,但我找不到任何关于为什么以这种方式使用缓存系统是一个坏主意的论据。那么,处理这种情况的最佳做法是什么 提前谢谢 我认为在几乎所有情况下,您都希望立即断开登录用户的连接。您可能在数据库中有用户信息,在会话中有身份验证信息。这很好。我只想让删除过程包括两个步骤: 从数据库

我正在做一个项目,管理员可以删除其他用户的帐户

最近我遇到了一个问题:当管理员在用户登录时删除帐户时会发生什么?有人建议将用户数据存储在缓存系统中,以便随时删除,但我觉得这不太合适

我的想法是,用户身份验证数据应该始终存储在会话中,但我找不到任何关于为什么以这种方式使用缓存系统是一个坏主意的论据。那么,处理这种情况的最佳做法是什么


提前谢谢

我认为在几乎所有情况下,您都希望立即断开登录用户的连接。您可能在数据库中有用户信息,在会话中有身份验证信息。这很好。我只想让删除过程包括两个步骤:

  • 从数据库中删除该用户。这将阻止新的登录。(编辑:或者更好,切换
    活动
    标志,以便维护任何现有的用户id关联,并且它们不能重新注册。)
  • 删除用户的所有现有会话。这将在用户下一次刷新页面时断开连接

  • 我同意第一部分,但是第二步呢?我认为不可能在每次刷新时都不检查数据库就删除用户会话。这就是为什么会提出“缓存而不是会话”的想法,因为缓存位于应用程序级别,所有用户都可以访问。“我认为不可能在每次刷新时都不检查数据库就删除用户会话。”我不明白你的意思。您应该能够任意删除所需的任何会话数据。@alex.ac您可以在删除用户帐户时,在删除操作中删除该用户会话。我不确定的是如何删除用户会话。像这样<代码>$this->Session->delete('Auth.User.id')Alex,你怎么能破坏另一个用户会话?如果您执行
    $this->Session->delete('Auth.User.id')
    操作,您只会破坏正在删除另一个用户的用户的会话。我对Cake不太熟悉,无法在该框架的上下文中回答这个问题,但是如果您的存储后端是(例如)数据库,您可以从会话表中删除该用户id。