一、该问题的重现步骤是什么?
开启BladeX-Boot2.5.1中的 [ 有状态,单人模式令牌 ]。
启用配置如下:
blade:
#token配置
token:
# 有状态
state: true
# 只可同时在线一人
single: true
二、你期待的结果是什么?实际看到的又是什么?
期望:
"有状态,单人模式令牌“功能正常运行。
实际效果:(底部有POSTMAN测试脚本)
登录时候refresh_token获取失败,使得返回值中没有了tokenType等键值对,进而导致之后的请求鉴权失败。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
BladeX-Boot
2.5.1
Windows10
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
参考文档 : 5.3.2.2 令牌认证配置
另外:
1. 这个问题我们已经找到了问题的根源: 位于 blade-core-secure 项目中的 SecureUtil.createJWT() 方法,其同时负责生成 accessToken 和 refreshToken, 在启用了有状态TOKEN之后,在生成refreshToken因为判断缺失导致refreshToken值将已经放进去的accessToken值进行了覆盖。
2. 对于商业版代码里发现的问题如何作贡献? 我们本想通过提交PR的方式来修复地,但没有发现这个选项。
附上相应的POSTMAN测试脚本。(其中使用了POSTMAN的测试脚本传递accessToken,所以在调用时候需要创建一个Environment,无需向Environment填入任何参数,脚本会自行添加)
BladeX-Boot-有状态TOKEN.postman.zip
扫一扫访问 Blade技术社区 移动端