如何保证接口登陆失效只弹窗一次。只跳转去登录页面一次

本文探讨了两种处理前端登录失效的场景。场景一中,通过设置变量current确保登录失效弹窗只出现一次,关闭现有弹窗后显示提示,并在用户确认后跳转到登录页面。场景二则直接展示toast提示并自动跳转到登录页,但仅当当前页面不是登录页时才执行。这两种方式都旨在提升用户体验。
摘要由CSDN通过智能技术生成

1.场景一,需要弹窗按了确定再去登录页面
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑

这个时候需要定义一个变量。如果是第一次值是默认值0就弹窗,并且变量加一。

如果是一个页面同时失效多个接口只有第一个接口走这里

let current = 0; //登陆失效只弹窗一次..设置一个变量保证只弹窗一次

// 403:没有权限, 401:"token失效" 请重新登陆"
if (error.response.status == "401" || error.response.status == "402"||error.response.status == "403") {
   //只弹窗一次登陆失效的提示
   if (current == 0) {
      1,先关闭所有的弹窗
      2.弹窗提示
      3.点击确定去登录页面
       
       current++;

}

场景二:直接toast登陆失效。然后自动跳转去登录夜

可以判断当前页面是否是登陆页面。如果失效并且已经不是登陆页面才跳转去登录页。

下面以小程序为例

let pages = getCurrentPages();
let curRoute = null;//当前页面的路由
if (pages.length) {
    let currPage = pages[pages.length - 1];
    curRoute=currPage.route
}
if ((res.data.code == 401||res.statusCode==401)&& curRoute!=='pages/login/login') {
wx.hideLoading();//关闭多有的弹窗。微信里面目前 toast 和 loading 相关接口可以相互混用,在使用wx.hideLoading()的时候showToast的弹窗也会关闭的
wx.showToast({title:'登陆失效,请重新登录'});
wx.redirectTo({
    url: "/pages/login/login"
})
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值