前端实现同一用户,当在异地登陆本地被踢出,出现弹出框(您的账号已经在异地登陆,确定 取消)点确定返回到登陆页

前端实现同一用户,当在异地登陆本地被踢出,出现弹出框(您的账号已经在异地登陆,确定 取消)点确定返回到登陆页,求大神指导 谢谢

阅读 7.5k
4 个回答

不要使用cookie保持登录。
1.登陆时使用帐号密码登录,后端清除该账户所有token,并新建一个token返回给客户端,客户端存到localStorage
2.别处登录的客户端由于token被系统清除,所以是未登录状态,如果本地有token,则证明异地登录,如果没有token,证明没有登陆过

我觉得是两个子问题,(1)需要在服务器端记录不同的登录,每次登录分配一个token,同时存储与用户的对应关系,通用地说:user -> [token],你可以控制有多少个token同时存在。 (2)如果某个用户的token多于制定数——你的需求是1——那么应该立即通知通知其它token的客户端,这是如何通知让其尽快下线的问题,解决方案很多啦

服务端存一个sessionid,有别处登陆时把sessionid删除,检查不到sessionid就没有登录

这个主要是后台的工作吧,前端只要跟后台商议好当接口返回某一个特殊的状态时,就出现弹出框,然后做相应处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题