如何使用数据库存储的会话ID验证当前用户会话ID?

时间:2013-03-02 09:53:45

标签: codeigniter session

我发现Code Igniter已经有ci_sessions表,用于在其中存储用户会话ID。我理解该表的主要目的。我想澄清一下如何用我当前的用户登录会话ID验证ci_session表数据?

基本上,我试图用户一次登录一个地方。要防止多次登录。我怎么能这样做?

2 个答案:

答案 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