限制同一用户同时登陆

来源:6-7 验证Token

点点点工程师

2018-07-19

登陆成功后返回token 用同一账号再次登陆后生成新的token 新token与原token不同 但是原token依然有效 我认为重新登陆后应该使原token失效 这样避免同一账号不同端或不同地点同时登陆操作数据 而且既然重新登陆了 原token就没有存在的意义 许多产品也是这样实现的  

所以 在登陆后 应该如何设置 使得原token失效

写回答

2回答

潇洒走一会啊

2018-07-20

我之前用过yii yii2.0的user组件是官方默认的登录组件,他会把获取的token作为一个字段,保存在user表中,这样就确保了token的唯一性,也就是说登录的人只有携带这个唯一的token,才能正确登录

2
0

点点点工程师

提问者

2018-07-20

我有个思路:

        生成token的时候加密用户id和login_time(登陆时间),注册后login_time默认一个时间比如1970年1月1号,登陆成功后将login_time设置为当前时间,解密token后,将得到的login_time和库里面的比较,如果一致且login_time不为1970年1月1日则验证成功,不一致抛出token失效异常。包括在修改密码、重置密码和退出登陆后,将login_time重新设置为1970年1月1日,这样在修改密码后使用原token也无法访问接口。

        老师有没有其他更好的实现方法,还有就是TimedJSONWebSignatureSerializer 没有让token强制失效的方法吗


1
0

Python Flask高级编程之RESTFul API前后端分离精讲

RESTFul+权限管理+token令牌+扩展flask=提升编程思维

2037 学习 · 359 问题

查看课程