javaweb项目,如何实现,当用户在A浏览器登录后,再在B浏览器登录,A浏览器再操作就会下线?

springboot+vue的项目
就是如何实现,只能同时在一台设备登录
没描述清楚

是分布式部署的,f5后面挂着两台机器,


回答:

使用redis


回答:

一般是通过token/session/cookie是否有效来判断用户上下线。

当用户有新的登录请求时,让这个用户之前存在系统里面的token/session/cookie失效就可以了,失效后自然就会下线。


回答:

加一张用户设备登陆表即可,在登陆时记录一下登陆设备指纹,如果发现有其他设备记录就刷新token或者cookie(这取决于你们的验证方式),这样其他设备的token/cookie就会因为失效而无法访问。

这样改造起来比较方便,一个用户在这个表里一般也就一两条记录,也不会造成臃肿。


回答:

可以参考spring security 的做法。如果在B浏览器登录,如果发现用户已经登录,则让原session 过期,但不清除。在filter的开始加入一个filter 来查看session是否过期,如果发现过期,则走session过期策略。

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

以上是 javaweb项目,如何实现,当用户在A浏览器登录后,再在B浏览器登录,A浏览器再操作就会下线? 的全部内容, 来源链接: utcz.com/p/944490.html

回到顶部