一、该问题的重现步骤是什么?
1. 登录系统后访问一个页面获取接口正常,10分钟左右未操作, 再调接口时报未授权,localstorage里token已经为空,token不是有定时refresh机制吗?刷新秒数配置的 604800,大概是7天,为何这么短就失效?前端为何用着用着就会把token清空呢?是不是有潜在bug? 相关代码如何排查调试? 因为用户那边是以物联网数据监控为主,可能长时间不操作,频繁弹出“未授权”,退到登录页,影响很大。因为不只是一个项目,多个项目均有此现象,用户反馈严重影响体验,希望能根本解决,不然动不动就退出让用户觉得系统不稳定。
3.
二、你期待的结果是什么?实际看到的又是什么?
刷新秒数 604800,大概是7天,为何这么短就失效?是不是有bug? 因为用户那边是以物联网数据监控为主,可能长时间不操作,频繁弹出“未授权”,退到登录页,影响很大。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex 4.2 saber3 win10
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
不清楚你们是都对框架这块有过改动,所以不好直接判断。
最好的验证方式如下:你们下载git私服原版的saber和bladex_boot,然后服务器部署一套,看看有没有这个问题。
还有一个,你看下爆红的接口,复制jwt的token,把它在线解码看看过期时间是多少,是token过期导致的未授权还是其他原因导致的未授权。
如果token过期,新版本会自动下去请求refreshtoken接口来刷新,正常情况是不会直接过期的。
我们只写业务,肯定是不会动这块框架机制的。今天早上又出现了,有些随机性,难以准确复现,按理说如果token过期,新版本会自动下去请求refreshtoken接口来刷新,正常情况是不会直接过期的,应该是有潜在的缺陷,比较担心随时会崩。以下是复制前端的:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsInRva2VuX3R5cGUiOiJhY2Nlc3NfdG9rZW4iLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLGhvdGxpbmUiLCJwb3N0X2lkIjoiMTEyMzU5ODgxNzczODY3NTIwOCwxODE4OTIyODgxOTQyMzM1NDkwIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxODA3NzA0OTYyMzE5ODg4Mzg1Iiwibmlja19uYW1lIjoi566h55CG5ZGYIiwiZGV0YWlsIjp7InR5cGUiOiJ3ZWIifSwiZGVwdF9pZCI6IjE4MDgwMzcwMTM5MjQ5Mzc3MzAiLCJhY2NvdW50IjoiYWRtaW4iLCJjbGllbnRfaWQiOiJzYWJlciIsImV4cCI6MTczNTA5NzI0NCwibmJmIjoxNzM1MDkzNjQ0fQ.i3DanwaTHC1eYof0F2hkk_3ilH4lXG3IZnmuxCdtmvE refreshToken:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ1c2VyX2lkIjoiMTEyMzU5ODgyMTczODY3NTIwMSIsInJvbGVfaWQiOiIxMTIzNTk4ODE2NzM4Njc1MjAxIiwidG9rZW5fdHlwZSI6InJlZnJlc2hfdG9rZW4iLCJkZXB0X2lkIjoiMTEyMzU5ODgxMzczODY3NTIwMSIsImNsaWVudF9pZCI6InNhYmVyIiwiZXhwIjoxNzM1Njk3NzQxLCJuYmYiOjE3MzUwOTI5NDF9.mfQ379sFqih2htNgPPfjql4EokmJwt-nnXf47nAtWWA
解析结果是空指针,就这样解析的 为空
作者追问:2024-12-25 11:44
你的token是11点27分过期,触发了401。正常会自动执行refresh_token去刷新token,但是你之前的截图是没有调用token接口进行刷新的。你需要去检查一下无感刷新的功能。
最好就是按照我说的来,你去部署一套bladex最新版的原版,看看过期后会不会自动刷新token。
回答:
2024-12-25 11:54
我刚才找了多名程序员了解了一下情况,主要是3.4及以前版本比较频繁,4.2版本暂时未发现此情况。原因应该是前端没有调后端的接口,这块前端也确定没有动过。我让他们按你说的部署一个空的3.4版本的测一测,再反馈。
作者追问:2024-12-25 11:56
3.x是定时刷新token来续期的,你们改造下axios,参考最新版本的axios,把它改成无感刷新的逻辑就行了。
回答:
2024-12-25 12:16
能不能提供一些这方面的资料,比如流程说明,调成功如何,不成功如何,或者代码片段及截图之类的? 我们研究一下这块
作者追问:2024-12-25 12:17
没有,只看axios.js就行了
回答:
2024-12-25 12:18
那我直接用4.2版本的替换3.4 axios.js行吗
作者追问:2024-12-25 12:20
稍微有点不一样,一共就200行代码,比对更新一下
讨论(0)
官方新品
- 热议问题
-
物联网APP登录接口在后端提示404, 前端提示跨域问题
1
-
代码生成主子表,查询子表报错了,想问下啥原因哦,sql放数据库执行没报错,用的db2数据库
1
-
swagger文档本地调试,获取token接口请求参数问题
1
-
使用PostgreSQL数据库,执行下列代码时报错
1
-
minio设置的是private的,blade现在能支持直接返回配置的外网Ip吗?
2
-
AVUE中配置可展开表格+复选框 Avue升级后3.6.3版本复选框无法显示
1
-
BladeX4.5.0引入MapStructPlus失败
1
-
mapper中的page和list两个方法,如果配置同一种数据权限。
1
-
方法中引入 MinioTemplate 问题
1
-
想问一下如果觉得本地服务启动的太多了 修改什么配置能让调用服务走服务器上部署的基础服务呢
1
扫一扫访问 Blade技术社区 移动端