如题:
我自己的逻辑:
1.在用户表中新增一个字段 is_online(是否已登陆 0 未登陆 1登陆)
2.登陆时判断此字段是否为1 ,退出时,更新此字段为0
如果用户非正常退出的情况 (关闭浏览器等) 这个情况就会没办法更新is_online字段
目前想到一个方法:但是没有完全理解
就是将session_id存入数据库 登陆时判断数据库中的session_id 在服务器中是否存在?
这个具体如何操作 请教一下
如题:
我自己的逻辑:
1.在用户表中新增一个字段 is_online(是否已登陆 0 未登陆 1登陆)
2.登陆时判断此字段是否为1 ,退出时,更新此字段为0
如果用户非正常退出的情况 (关闭浏览器等) 这个情况就会没办法更新is_online字段
目前想到一个方法:但是没有完全理解
就是将session_id存入数据库 登陆时判断数据库中的session_id 在服务器中是否存在?
这个具体如何操作 请教一下
登陆时,将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);
}
}
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答726 阅读✓ 已解决
2 回答2.3k 阅读
1 回答689 阅读✓ 已解决
每次登录都生成一个用户user_id与相对的token,保存到数据库里。每次接口请求之前判断这个token是否有效,重新登录后token发生变化,之前登录的token验证就失效了,从而实现一个帐户只能一个终端登陆。