如题:我自己的逻辑:1.在用户表中新增一个字段 is_online(是否已登陆 0 未登陆 1登陆)2.登陆时判断此字段是否为1 ,退出时,更新此字段为0
如果用户非正常退出的情况 (关闭浏览器等) 这个情况就会没办法更新is_online字段
目前想到一个方法:但是没有完全理解
就是将session_id存入数据库 登陆时判断数据库中的session_id 在服务器中是否存在?
这个具体如何操作 请教一下
5 回答
![?](http://img1.sycdn.imooc.com/5458502c00012d4a02200220-100-100.jpg)
慕桂英546537
TA贡献1848条经验 获得超10个赞
每次登陆后生成一个有时效token,保存在服务器端和客户端,每次鉴权时只验证这个token
这样新的登录事件发生后,由于token改变,以前的有效登录就自动失效了
![?](http://img1.sycdn.imooc.com/533e4c3300019caf02000200-100-100.jpg)
呼如林
TA贡献1798条经验 获得超3个赞
登陆时,将session_id存入数据库 鉴权时判断 数据库中的session_id在服务器中是否还存在
通过session_save_path()获取session_id在服务器中的目录路径
//判断数据库中用户是否登陆
if($admin['is_online']) {
//如果用户非正常退出时, 判断session_id是否存在 如果存在 提示已经登陆 ( session默认30分钟失效)
if(file_exists(session_save_path().'\\'.$admin['session_id'])) {
ajaxmsg('此账号已在其它地方登陆,请先退出后再登陆',0);
}
}
- 5 回答
- 0 关注
- 617 浏览
添加回答
举报
0/150
提交
取消