在封装网络请求的代码中监听接口的状态码即可,只要接口状态码为401,就清除登录缓存,退回到登录界面。
实现代码如下:
function Urltoken() {
let currentUser = wx.getStorageSync('userToken');
return currentUser ? currentUser : undefined
}
function doRequest(url, method, theData) {
let theUrl = url
if (url.indexOf('http') === -1) {
theUrl = host + url
}
let promise = new Promise((resolve, reject)=>{
wx.request({
url: theUrl,
header: {
"content-type": "application/json;charset=UTF-8",
"Authorization": "token " + Urltoken(),
},
data: theData,
method: method,
success: function (res) {
if (res.statusCode === 401) {
wx.showToast({
title: '您的账号登录已失效, 请重新登录',
icon: 'none'
})
setTimeout(() => {
wx.removeStorageSync('userToken')
wx.reLaunch({
url: '../aboutLogin/login/login'
})
}, 1500)
return false
}
resolve(res);
},
fail: function (XHR) {
reject(XHR)
},
})
})
return promise;
}
module.exports.doRequest = doRequest;
核心代码:
if (res.statusCode === 401) {
wx.showToast({
title: '您的账号登录已失效, 请重新登录',
icon: 'none'
})
setTimeout(() => {
wx.removeStorageSync('userToken')
wx.reLaunch({
url: '../aboutLogin/login/login'
})
}, 1500)
return false
}