想做一个下线通知,就和 qq 的下线通知类似,现在的认证用 devise。大家有什么办法啊?我弄了一天没想通
我这是这么干的,每次登录后在内存数据库里生成一个 key value,key 就是用户 id,value 就是一个随机的 token,当 token 发生变化后有两种方案处理反馈,一种是当新的请求发生的时候去检查 key value 是否匹配,然后把结果返回到新的请求页面,还有一种如果你想做及时通知的话你可以建一个推送服务器,推送服务器我采用的是 SSE 协议,SSE 协议对服务器压力相对来说比较小,因为是短连接,但有个缺点是现在的浏览器大部分都不支持 LAST_EVENT_ID,兼容性不大好,不过其实不做推送用户体验也不会差到哪去
User 表里面加一个 last_logined_session_id
字段,登录以后修改它为 Session 的编号
current_user 获取到以后对比一下 last_logined_session_id
不一致就登出