问答

token如何确保用户登录的唯一性

作者:admin 2021-05-08 我要评论

使用的shiro-redis-spring-boot-starter的包,但发现前后同一账户两次登录产生的不同token都能进行相关用户权限的操作,这显然不符合逻辑。理想的状态是,当用户...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

使用的shiro-redis-spring-boot-starter的包,但发现前后同一账户两次登录产生的不同token都能进行相关用户权限的操作,这显然不符合逻辑。理想的状态是,当用户再次登录后,只有新生成的token有效,这样防止用户在不同客户端登录忘记退出造成的问题,请问可以实现么?我是新手。

###

数据库或者redis保存userId和token的对应关系。根据token读取userId,老token是读不到userId的,因为对应关系没了。也就实现了唯一登录

###

最骚的就是把以前的token干掉或者加白名单这种,让她失效即可

###

单纯在 token 这一块是无法实现的。需要借助后端,用户登录后,记录登录时间,token 的 签发时间issue at 设置为登录时间, 然后校验token 的时候,token 解密后,拿出uid,再拿到最后登录时间,然后对比 issue at和最后登录时间,如果签发时间在登录时间之前,这个token 就是无效的。

具体的验证粒度,看你业务,有些要求用户只能一个登录,有些要求用户可以每个端登录一个,有些要求不限制,只要token 没过期就可以,,除了最后一个过期的,前面的两种只是记录的最后登录时间的粒度不同,其他都是一样的

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • token如何确保用户登录的唯一性

    token如何确保用户登录的唯一性

  • React-Router中的Link,路由地址不变的

    React-Router中的Link,路由地址不变的

  • 请教一个js的基础问题

    请教一个js的基础问题

  • 如何用python读取不规则格式中的数据?

    如何用python读取不规则格式中的数据?

腾讯云代理商
海外云服务器