我发现Code Igniter已经有ci_sessions表,用于在其中存储用户会话ID。我理解该表的主要目的。我想澄清一下如何用我当前的用户登录会话ID验证ci_session表数据?
基本上,我试图用户一次登录一个地方。要防止多次登录。我怎么能这样做?
答案 0 :(得分:1)
您无法使用会话ID执行此操作,因为从其他位置登录会在该新位置创建新的会话ID。
将userID存储到会话中,然后在登录时进行检查。
$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
}
答案 1 :(得分:0)
通过将用户ID存储在会话数据中并将其作为列添加到会话表中,您可以在创建会话数据之前删除登录时该用户ID的所有会话。这将使同一用户的任何会话无效。有关如何执行此操作的进一步说明,请参阅此处:https://stackoverflow.com/a/9564433/89211