我发现 Code Igniter 已经有 ci_sessions 表,其中存储了用户会话 ID。我了解该表的主要目的。只是我想澄清一下如何使用当前用户登录会话 ID 验证 ci_session 表数据?
基本上,我正在尝试一次用户登录一个地方。防止多次登录。我怎样才能做到这一点?
我发现 Code Igniter 已经有 ci_sessions 表,其中存储了用户会话 ID。我了解该表的主要目的。只是我想澄清一下如何使用当前用户登录会话 ID 验证 ci_session 表数据?
基本上,我正在尝试一次用户登录一个地方。防止多次登录。我怎样才能做到这一点?
您无法使用会话 ID 执行此操作,因为从另一个位置登录会在该新位置创建一个新的会话 ID。
将用户 ID 存储到会话中,然后在登录时检查它。
$this->db->where('userId',$userId);
$result = $this->db->get('ci_session');
if($result->num_rows() > 0)
{
//log out old user, throw error, whatever
} else {
//continue with login
}
通过将用户 ID 存储在会话数据中并将其作为列添加到会话表中,您可以在创建会话数据之前在登录时删除该用户 ID 的所有会话。这将使同一用户的任何会话无效。有关如何执行此操作的进一步说明,请参见此处:https ://stackoverflow.com/a/9564433/89211