php - 如何防止用户在codeigniter中同时从多个浏览器登录?
问题描述
我的票务系统处于活动状态。我想要的是,当用户从 chrome 登录时,如果他再次尝试从 Firefox 登录而不从 chrome 注销,那么 chrome 帐户将自动注销。
这是我的控制器代码:-
public function loginSubmit() {
if($this->session->userdata('is_logged_in')==true){
$sessionData = $this->session->all_userdata();
$userId = $sessionData['id'];
redirect('auth/welcome');
}
else{
$userId = $this->input->post('id');
$u_data = array (
'id' => $userId,
'is_logged_in' => TRUE
);
$this->session->set_userdata($u_data);
$sessionId = session_id();
$this->auth_model->setSession($userId,$sessionId);
redirect('auth/welcome');
$this->login();
}
}
这是我的模型代码:-
public function setSession($userId, $sessionId) {
$data1 = array(
'id' => $userId
);
$oldSessionId = $this->db->select("session_id")
->where($data1)
->get("client_sign_up")
->row('session_id');
print_r($oldSessionId);
$data = array(
'id' => $oldSessionId
);
$this->db->where('id',$data)
->delete('ci_sessions',$u_data);
$this->db->where('id', $userId)
->update('client_sign_up', array('session_id' => $sessionId));
}
解决方案
推荐阅读
- ios - 通过扩展向 UILabel 添加渐变
- ejs - 如何在 EJS scriptlet 标记中使用箭头函数?
- java - HUD 不动(我正在做一个 mcp mod)
- python - 为什么 Openpyxl 无法加载我现有的 .xlsx 文档?
- azure - Azure AD 在启动时运行应用程序
- azure - SelectPdf - NET Core 3.1 - 无法在 Azure 应用服务上将 HTML 转换为 PDF
- javascript - 如何使 Bootstrap 拆分按钮下拉菜单看起来像折叠导航栏中的标准下拉菜单
- c++ - vscode 无法识别扩展名 .cpp.in
- android - 我可以在 Android 手机上运行 IOS 应用程序吗?
- flutter - 如何使用合并语义将 Cupertino 添加到 appbar