互踢功能
功能描述
互踢功能指的是同一个账号,在不同的浏览器登录之后,先登录的会被后登录的踢下线。
实现原理
本质上是每次登录之后会保存包含当前时间的redis的key,下次登录进来之后,首先是删除所有前缀是用户id的key,其次是以用户id和当前时间进行加密得到最新的key,并存入redis中。
每次调用方法会经过拦截器,拦截器会通过解密请求头里的token去判断redis是否存在,如果不存在则属于是下线了。
同一浏览器因为会替换请求头中的token,故同一浏览器再次登录并不会踢下线。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PlanB's Blog!