redis session共享了,如果用户退出登陆,如何清除该账户所有客户端的session?

uix_lv_y 发布于 2019/05/31 13:57
阅读 1K+
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

如有同一个账户登陆google浏览器了,又在ie浏览器上登陆了同一个账户,假如google浏览器用户退出了登陆,ie浏览器的session如何自动清除?

加载中
0
独孤晓林

HttpSessionListener用这个监听类

0
gammey
gammey

这本来就是两个session(会话),清除不了。

除非你能判断这两个浏览器是同一个人在使用。

一定要清除的话,根据注销用户的用户名,根据session中登录用户名来清除所有注销用户所对应的session,但这样开销很大。

gammey
gammey
回复 @uix_lv_y : 可以在用户登录后同时创建一个用户对应的key为用户名,value为sessionid的list的key-value。等用户注销之后,直接根据这个kv,找到用户,以及对应的sessionid,并同时清空这个kv以及session。
uix_lv_y
uix_lv_y
对,现在我的代码就是根据登录用户名来清除所有注销用户所对应的session,要便利redis里面的所有value值,确实开销大
返回顶部
顶部