saber3前端token为空

Blade 未结 2 221
six_six_2005
six_six_2005 2024-12-24 12:25

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

1. 登录系统后访问一个页面获取接口正常,10分钟左右未操作, 再调接口时报未授权,localstorage里token已经为空,token不是有定时refresh机制吗?刷新秒数配置的 604800,大概是7天,为何这么短就失效?前端为何用着用着就会把token清空呢?是不是有潜在bug? 相关代码如何排查调试? 因为用户那边是以物联网数据监控为主,可能长时间不操作,频繁弹出“未授权”,退到登录页,影响很大。因为不只是一个项目,多个项目均有此现象,用户反馈严重影响体验,希望能根本解决,不然动不动就退出让用户觉得系统不稳定。

 9c9e052102ba51daf6c579b8701bd75b.png

3.11408dfe0ec5d73153ee21417e63b26c.png

fcc39786416f068319819138560c546c.png

二、你期待的结果是什么?实际看到的又是什么?

刷新秒数 604800,大概是7天,为何这么短就失效?是不是有bug? 因为用户那边是以物联网数据监控为主,可能长时间不操作,频繁弹出“未授权”,退到登录页,影响很大。

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

bladex 4.2  saber3   win10

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  •  six_six_2005
    2024-12-25 11:41

    我们只写业务,肯定是不会动这块框架机制的。今天早上又出现了,有些随机性,难以准确复现,按理说如果token过期,新版本会自动下去请求refreshtoken接口来刷新,正常情况是不会直接过期的,应该是有潜在的缺陷,比较担心随时会崩。以下是复制前端的:

    eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsInRva2VuX3R5cGUiOiJhY2Nlc3NfdG9rZW4iLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLGhvdGxpbmUiLCJwb3N0X2lkIjoiMTEyMzU5ODgxNzczODY3NTIwOCwxODE4OTIyODgxOTQyMzM1NDkwIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxODA3NzA0OTYyMzE5ODg4Mzg1Iiwibmlja19uYW1lIjoi566h55CG5ZGYIiwiZGV0YWlsIjp7InR5cGUiOiJ3ZWIifSwiZGVwdF9pZCI6IjE4MDgwMzcwMTM5MjQ5Mzc3MzAiLCJhY2NvdW50IjoiYWRtaW4iLCJjbGllbnRfaWQiOiJzYWJlciIsImV4cCI6MTczNTA5NzI0NCwibmJmIjoxNzM1MDkzNjQ0fQ.i3DanwaTHC1eYof0F2hkk_3ilH4lXG3IZnmuxCdtmvE
    
    refreshToken:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ1c2VyX2lkIjoiMTEyMzU5ODgyMTczODY3NTIwMSIsInJvbGVfaWQiOiIxMTIzNTk4ODE2NzM4Njc1MjAxIiwidG9rZW5fdHlwZSI6InJlZnJlc2hfdG9rZW4iLCJkZXB0X2lkIjoiMTEyMzU5ODgxMzczODY3NTIwMSIsImNsaWVudF9pZCI6InNhYmVyIiwiZXhwIjoxNzM1Njk3NzQxLCJuYmYiOjE3MzUwOTI5NDF9.mfQ379sFqih2htNgPPfjql4EokmJwt-nnXf47nAtWWA


    解析结果是空指针,就这样解析的  为空b39de59debcdd05a06f83d6865c6ae50.png

    作者追问:2024-12-25 11:41

    你的token是11点27分过期,触发了401。正常会自动执行refresh_token去刷新token,但是你之前的截图是没有调用token接口进行刷新的。你需要去检查一下无感刷新的功能。

    最好就是按照我说的来,你去部署一套bladex最新版的原版,看看过期后会不会自动刷新token。

    回答: 2024-12-25 11:41

    我刚才找了多名程序员了解了一下情况,主要是3.4及以前版本比较频繁,4.2版本暂时未发现此情况。原因应该是前端没有调后端的接口,这块前端也确定没有动过。我让他们按你说的部署一个空的3.4版本的测一测,再反馈。

    作者追问:2024-12-25 11:41

    3.x是定时刷新token来续期的,你们改造下axios,参考最新版本的axios,把它改成无感刷新的逻辑就行了。

    回答: 2024-12-25 11:41

    能不能提供一些这方面的资料,比如流程说明,调成功如何,不成功如何,或者代码片段及截图之类的? 我们研究一下这块

    作者追问:2024-12-25 11:41

    没有,只看axios.js就行了

    回答: 2024-12-25 11:41

    那我直接用4.2版本的替换3.4 axios.js行吗

    作者追问:2024-12-25 11:41

    稍微有点不一样,一共就200行代码,比对更新一下

代码语言
提交回复