【问题标题】:force a specific user to logout in codeigniter with destroying his session强制特定用户在 codeigniter 中注销并销毁他的会话
【发布时间】:2013-11-29 21:39:37
【问题描述】:

当我使用 codeigniter 中的会话将其状态更改为“非活动”时,我想强制用户注销。

我使用了下面的方法,但是它破坏了我自己的会话:

function deactivate($user_Id)
{
    $this->session->unset_userdata(array('user_Id' => $user_Id));
}

【问题讨论】:

    标签: php codeigniter session


    【解决方案1】:

    我碰巧需要实现这个功能,我是这样做的:

    1. 登录后将用户会话ID记录为数据库中的last_active_session
    2. 当该用户被禁止或发生任何事情时,找到该会话 ID 并将其从会话表中删除。

    您还可以使用它来防止并发登录,例如最后一次成功登录的用户撞上前一次。

    【讨论】:

      【解决方案2】:

      改用sess_destroy() 方法:

      function deactivate() {
          $this->session->sess_destroy();
      }
      

      【讨论】:

      • 为什么您和用户的会话会保持在同一个浏览器上?您不是在构建具有 Gmail 复杂性的应用程序,是吗?您可以在同一台计算机上添加多个帐户。甚至所有会话都同时注销。你需要在开始编程之前计划好事情
      • 如果管理员是一个系统并且他想要强制注销某些遇到问题的用户怎么办?
      猜你喜欢
      • 2016-11-04
      • 2012-03-22
      • 1970-01-01
      • 2014-01-19
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 2012-05-11
      相关资源
      最近更新 更多