谢谢大家,请问一个关于小程序登录失效后,再次发起业务代码请求的问题?
export const request = (options = {}) => { //异步封装接口,使用Promise处理异步请求
return new Promise((resolve, reject) => {
let rd3_key = uni.getStorageSync('rd3_key') ? uni.getStorageSync('rd3_key') : ''
// 发送请求
uni.request({
url: baseUrl + options.url || '', //接收请求的API
method: options.method || 'GET', //接收请求的方式,如果不传默认为GET
data: options.data || {}, //接收请求的data,不传默认为空
data: {
...options.data,
rd3_key
},
header: {
'content-type': 'application/x-www-form-urlencoded', //修改此处即可
}
}).then(data => {
let [err, res] = data;
// if(res.data.code == 4001){
// post_login()
// }
if(res.data.code == 4001){
// return post_login().then(resolve, reject)
post_login()
}
resolve(res);
}).catch(error => {
reject(error);
})
})
}
上面是封装的请求代码,我们程序登录" title="小程序登录">小程序登录失效的话,返回状态码是4001,也就是下面这段代码,
if(res.data.code == 4001){
post_login() //wx.login 静默登录拿openid
}
当登录失效也就算code== 4001的时候, 我重新调登录,这一步没有问题,但是那些各个页面请求的接口,没有再次发起请求,我也不知道用户会在哪个页面的出现登录失效的情况,又不想在每个接口请求的地方都写一个if(res.data.code == 4001) 发起登录后,再调用业务接口请求,
这个有什么比较好的统一封装请求的方法吗?谢谢大家
回答:
可以写在响应拦截器里,如果发现code===4001的话可以先跳转到一个中间页进行提示正在重新登录,重新登录成功后再跳转回上一页走一遍生命周期
以上是 谢谢大家,请问一个关于小程序登录失效后,再次发起业务代码请求的问题? 的全部内容, 来源链接: utcz.com/p/932942.html