Yii2 防止用户重复登录

weixin_38054293 2019-09-11 03:57:20
有这么一个需求,一个账号不允许同时在两个地方登录。 比如账号A在PC1上登录, 同时又在PC2上登录,那么PC1上的会话将会断开,访问后需要重新登录。 网上有一个相关的文章可以解决同时登录的问题 http://blog.csdn.net/navioo/article/details/51887047 但在会话断后再自动登录的会话无法生效。 请教一下有没有其它可用方法?
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38085511 2019-09-11
  • 打赏
  • 举报
回复
额,建议确认一下: 会话断开后 自动登录的sessionid 是否发生了变化 看了下你参考的文章的原理, 它是利用会话session中存储的token,与数据库中对应用户的token进行比对,进而判定会话是否有效。 如果 sessionid 发生了变化,就必然需要重新输入用户名密码进行登录了。 另外, 如果要解决同一个会话过期后 自动登录依然可以直接用,建议 在比对用的token中只存储 IP UserAgent 等不会高频变化的信息。
weixin_38095754 2019-09-11
  • 打赏
  • 举报
回复
12345
weixin_38097244 2019-09-11
  • 打赏
  • 举报
回复
我问题答案写到了一半突然删除了,发现被问题绕进去了,简单分析下: 不能同时登录,A浏览器登录后,B浏览器再登录,A要下线,而且A下线后再打开网站能自动登录. 如果是这样的话,那么你为什么要然A下线? 浏览器自动登录的大多数使用的 cookie 实现的.都是短连接(如果你的不是那就另说).请求完成后就断开,自动登录就是 下次带着上次 有效的 cookie 找到 有效的 session 去登录. 你让 A 下线怎么搞? 改 session ,让 A 的 cookie 找不到 session 就会退出登录了,再让 A 自动登录? A拿什么自动登录?
weixin_38080355 2019-09-11
  • 打赏
  • 举报
回复
创建一个表存 登录用户id, ip这些, 登陆前先查一遍,有没有记录,有就不让进,没有就记录下来.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧