我发现Code Igniter已经有ci_sessions表存储用户会话id。我了解该表的主要目的。只是我想澄清我如何使用我当前的用户登录会话ID验证ci_session表数据?如何使用数据库存储的会话ID验证当前用户会话ID?
基本上,我试图做一次用户登录一个地方。多重登录被阻止。我怎样才能做到这一点?
我发现Code Igniter已经有ci_sessions表存储用户会话id。我了解该表的主要目的。只是我想澄清我如何使用我当前的用户登录会话ID验证ci_session表数据?如何使用数据库存储的会话ID验证当前用户会话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
我做了每个用户登录的会话ID并交叉检查用户的会话ID并强制/销毁它 – logudotcom 2013-03-11 14:04:47
sessionId不是特定于特定用户并且它是独一无二的,不完全确定你做了什么,但很高兴你将它分类。 – 2013-03-12 12:14:42
我正在为每个用户生成会话ID并在登录时进行检查 – logudotcom 2013-03-12 12:28:18