uni-app经过判断接口403跳转登陆页面的问题

需求: 当向后端请求接口返回 403 的时候,直接跳到登陆页面让用户登陆vue

实现方案: 在请求结束后拦截器中判断,若是是 403 就跳转后端

遇到难题: 一级页面(个人) onShow() 中有接口请求,用户在没有登陆的状态下,来到个人页面, 接口报错返回403 ,触发咱们在拦截器写好的方法,跳转到登陆页面, app

    出现怪异现象:1.进入到个人页面, 会连续跳转2次到登陆页面(由于个人页面有两个请求都返回 403,因此会连续跳两次)函数

           2.跳转到登陆页面后, 点击导航栏返回后, 接口会再次请求报错返回403(由于onShow的方法) ,触发咱们在拦截器写好的方法,再次跳转到登陆页面(死循环)spa

解决方法:blog

处理怪异现象1:接口

1.1在跳转到登陆页面以前向本地存储中获取 jump (获得空)事件

1.2if 判断进入到跳转登陆页的方法. (注意延迟300跳转)登录

1.3同时再为本地存储 jump 设一个值.(这样作就能够避免 300毫秒之内的接口即便报403,也不会进入到if(!jump)函数体中,也就不会出现连续跳转了)循环

1.4在登陆页面将本地存储 jump 移除(别忘记了,否则以后其余接口报 403 就不会进入函数体了,不会跳转了)

http.js文件

login.vue 文件

 

 处理怪异现象2:

 

 

 咱们在登陆页面中,使用uni-app的 onBackPress 事件来监听用户点击返回键

若是是从其余页面来的,点击返回键执行back方法

 

 back方法:

相关文章
相关标签/搜索