比如:
用户注册后并且登陆了, 然后我在后台删除这个用户名的时候 用户的session依然是存在的可以访问
当然重新登陆肯定不行了,
一般这种情况 删除用户后如何摧毁这个用户的session呢, 没思路啊!!
有疑问加站长微信联系(非本文作者)

比如:
用户注册后并且登陆了, 然后我在后台删除这个用户名的时候 用户的session依然是存在的可以访问
当然重新登陆肯定不行了,
一般这种情况 删除用户后如何摧毁这个用户的session呢, 没思路啊!!
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
你登录的时候创建session,你退出,删除用户的时候注销session
他想表达的应该是: 后台管理系统中,创建了用户->用户使用在使用系统->后台删除了用户 但是用户依然能够使用一段时间,除非退出,下次就无法用帐号登录使用 解决方案:在删除用户的时候同时删除用户生成的session就好了
@zxmin 删除用户的session我知道, 但是不知道如何找到这个用户的session啊 一个WEB可能登陆几十几百个用户,几百个SESSION ID 无法分辨啊。
@hellsam 你是怎么设计的session,说白也是键值对,如果你不知道怎么找到session,那么请问登录后使用过程中验证合法性,你是怎么通过session获取对应用户的信息的?一般session的键是用户id加一些规则生成的,必须找得到啊,不然session缓存一堆意义何在。
不太明白楼主的问题到底是什么,session 信息是和用户 id 绑定的,每次请求过来都是需要在代理服务器处检查用户 session 有效性的。 你在后台数据表里把 session 信息干掉了,用户再依据这个 session 发来任何请求,都是跟用户 id 对不上号了,不是自然而然就失效了吗,这个不需要在客户端把用户的 session 干掉。
@dong-hao 对啊
总不能几百几千个用户对应着同一个 key 吧,哪有这样设计的,这样的 key 有卵用吗???在你的这个场景,key 肯定是保存唯一且能跟用户 id 达到 一一对应的,整个框架推倒重来吧
建立一个token表,
在需要注销用户的时候重新生成这个token 。
记得自己维护和管理这个token的缓存。
对了,没说清楚
你的session也要存对应的token
每次登录,判断下session中的token和系统里uid对应的token是否是同一个,不是的话当作没登录处理就好了。
@jarlyyn 我想了下还是用老版本解决吧 验证session是否存在 并且查询这个session里的用户名和数据库查询对比是否存在 ,数据库不存在即使SESSION存在也自动退出即可
就是可能占用点SQL资源 每个用户需要验证SESSION+SQL查询 ,这样即可解决删除用户后 查询不到依然退出了。
这个办法也没啥问题, 但不管怎么样前面总要架个缓存啊…… 另外删除用户一般应该是改标志位吧?