自动登录
// 节流自动登录
let lastLoginTime
const autoLogin = (config) => {
return new Promise((resolve, reject) => {
const username = getSysStorage(constant.name)
const password = getSysStorage(constant.password)
if (lastLoginTime && new Date() - lastLoginTime < 1000) {
setTimeout(() => {
request(config).then(resAgain => {
resolve(resAgain)
})
}, 300)
} else if (username && password) {
removeToken()
lastLoginTime = new Date()
store.dispatch('Login', {
username,
password
}).then(res => {
getToken() && request(config).then(resAgain => {
resolve(resAgain)
})
}).catch(err => {
reject(err)
})
} else {
reject({
code: 500,
msg: '自动登录失败,请前往登录页登录'
})
}
})
}
request中:
if (code === 401) {
autoLogin(config).then(resAgain => {
resolve(resAgain)
}).catch(err => {
reject(err)
showConfirm(err.msg || '登录已失效,您可以继续留在该页面,或者重新登录?').then(res => {
if (res.confirm) {
uni.reLaunch({
url: '/pages/login'
})
}
})
})
}
浙公网安备 33010602011771号