限制账号多端登录

Blade 未结 2 759
caimq
caimq 剑童 2024-09-19 09:56

一、该问题的重现步骤是什么?

  1. 想限制账号多端登录,在另一个浏览器登录后,已登录浏览器强制退出并提醒

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex:2.4.0

2条回答
  • 2024-09-19 10:49

    好的。那如果我想自己改造应该在哪里改造呢

    作者追问:2024-09-19 11:08

    核心思路如下:

    1. 把token存入redis,每次有新的登录请求,就把之前的token从redis删掉,并且存入新的token。

    2. redis存储逻辑的key为userId,value为token的值。每次鉴权前从redis获取,然后做缓存和请求的token做对比,token一致则放行,不一致则拒绝访问。

    3. 后续的账号登录就会把上一个token顶掉,上一个账号继续操作的时候,老的token无法从redis匹配,自然就鉴权失败跳转到登录页面了。

    回答: 2024-09-19 11:34

    核心思路确实有,就是不知道该在什么地方去改造。看了下auth和网关都没看到相应存redis的步骤。时间紧急没时间一步一步看源码,还望大佬指点一下。感谢

    作者追问:2024-09-19 11:41

    看提交记录,可以看到代码的变更对比,需要修改BladeX-Tool并且本地安装依赖,历史版本的Tool工程这里下载,在附件里可下载到:https://center.javablade.com/blade/BladeX/releases


    CleanShot20240919113833@2x.png

    CleanShot20240919113951@2x.png

    CleanShot20240919114032@2x.png

    回答: 2024-09-21 21:52

    我根据你提供的代码。我做了替换,对应tool工具包我也重新引入了。现在auth能正常返回token。但是后续什么菜单路由啊。反正就是拿不到数据获取不到用户信息了。我看现在token需要加32位以上的key是这个导致加密影响解析了嘛image.pngimage.pngimage.png

    1 讨论(0)
  • 2024-09-19 10:20

    2.4.0版本不支持,3.x开始的版本支持。


    另外请给我们发一封邮件(bladejava@qq.com)说明一下授权公司名,我们把你的账号标记为商业账号

    作者追问:2024-09-19 14:58

    已发邮件望处理

    0 讨论(0)
提交回复