请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

时间校验加在了请求拦截器上,当前的首页是已登录时跳转进来的

此时刷新应该没有数据请求,为何会发生时间校验显示 token 失效弹框呢?
图片描述

正在回答 回答被采纳积分+3

1回答

Sunday 2022-11-07 17:52:09

你好

这个需要根据你的代码才能分析出来。

如果该问题目前还没有解决,那么可以在 QQ 群中联系我(LGD_Sunday),把代码发我我看下。

0 回复 有任何疑惑可以回复我~
  • 提问者 sunzhenyang #1
    老师您好,可能是我没描述清楚,
    
    我看您的代码把 isCheckTimeout 这个过期校验函数写在了请求拦截器里,
    当前这个课程章节,登录成功进入首页后,再刷新首页并没有发生新的数据请求,所以应该不会进入请求拦截器,
    但是您的页面刷新之后是会走到请求拦截器调用到 isCheckTimeout 这个函数的,
    我的页面不会,只有在发送请求的时候才会退出登录,不明白为什么会有这种差异
    
    我的代码地址:https://github.com/sunzhenyang/vite-vue-element-admin
    回复 有任何疑惑可以回复我~ 2022-11-08 09:07:49
  • Sunday 回复 提问者 sunzhenyang #2
    你好。你下载的应该是完整的项目源代码,在完整的源代码中,我们在 permission.js 中创建了一个 VueRouter 的前置路由守卫,它会在每次路由发生跳转时被触发,并且在此处我们进行了接口的请求。所以会每次刷新页面都会触发接口请求。
    
    而在你的代码中,因为使用了 piniaPluginPersistedstate ,让 pinia 的数据进行了自动缓存。所以在你的 permission 中 if (!hasUserInfo) 该判断会被判断为 false(即:数据存在),所以不会再次触发 userinfo 接口。也就没有了《刷新页面接口请求的行为》
    回复 有任何疑惑可以回复我~ 2022-11-08 09:27:56
  • 提问者 sunzhenyang 回复 Sunday #3
    谢谢老师,明白了,已解决  
    
    persist: [
        {
          paths: [TOKEN, TIME_STAMP],
          storage: localStorage
        }
      ]
    回复 有任何疑惑可以回复我~ 2022-11-08 10:11:01
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号