yii2 session 存储在数据库中,如何强制退出某个用户?
我这样尝试了
- 手动删除 session 表中用户 A 的记录
- 刷新用户 A 的用户中心,依然还处于登录状态
- 查看 session 表,用户 A 的记录又出现了
那怎么才能强制让用户 A 退出,A 可能在多处的网页登录。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为Cookie带了相关信息,应用认了Cookie信息,通过session驱动到表里。
既然你还不清楚怎么退出,我猜Yii这个框架的用户鉴权方式默认是自带的。
一般框架自带的鉴权方式默认都实现了开箱即用的 退出当前设备 退出所有设备 仅退出其它设备 等session注销方式。
这些代码虽然都集成到框架内部了,但由于是业务代码,所以一般都很简单,只是框架给它封装的看起来优雅一点,考虑的多一点而已。其本质上还是cookie、session那一套删来删去,建议可以看看它内部代码具体是如何写的。
根据搜索到的信息
1 在用户字段上增加一个 force_logout 标记
2 在 beforeAction 里判断 force_logout 标记,如果有就 logout,重置 force_logout 标记,然后跳转
3 强制登出的地方 设置这个 force_logout 标记