PHP实现单例登录
所属分类: PHP模块 2020-11-05 13:54:02 编辑:admin 浏览次数 1087 次
单例登录:意思是同一个用户,在同一时间只能同时存在一个。
实现大体思路:
用户表:
Id
Login_key
1. 用户在每次登录的时候,更新数据库的login_key,并存到session中
2. 全局文件中写入判断session和数据库的login_key做比较,失败则登录,并清空缓存
3. 本人在次登录的时候,他的login——key被修改,则上一个人的session不对了,就掉线
代码实现:
登陆代码:
//修改登录key
$is_login_key = makdSalt();//生成随机数
DB::table('user')->where('id',$id)->update(['login_key'=>$is_login_key]);
//保存用户信息到session
session('hh_login_key', $is_login_key);
全局代码
$login_key=DB::table('user')->where('id', session(‘userid'))->value('login_key');
if(session('login_key') != $login_key){
session('login_key', null);
$this->error('您的账号在其他地方登录,您被迫强制下线!');
}