优化登录失效后操作的友好性提示

This commit is contained in:
jmal 2020-07-24 11:37:37 +08:00
parent 280d68f2ca
commit 41e42eec13
2 changed files with 22 additions and 25 deletions

View File

@ -34,10 +34,9 @@ router.beforeEach(async(to, from, next) => {
// get user info // get user info
await store.dispatch('user/getInfo') await store.dispatch('user/getInfo')
next() next()
} catch (error) { } catch {
// remove token and go to login page to re-login // remove token and go to login page to re-login
await store.dispatch('user/resetToken') await store.dispatch('user/resetToken')
Message.error(error || 'Has Error')
next(`/login?redirect=${to.path}`) next(`/login?redirect=${to.path}`)
NProgress.done() NProgress.done()
} }

View File

@ -24,7 +24,7 @@ service.interceptors.request.use(
}, },
error => { error => {
// do something with request error // do something with request error
console.log(error) // for debug console.log('123',error) // for debug
return Promise.reject(error) return Promise.reject(error)
} }
) )
@ -43,38 +43,37 @@ service.interceptors.response.use(
*/ */
response => { response => {
const res = response.data const res = response.data
// if the custom code is not 20000, it is judged as an error.
if (res.code !== 0) { if (res.code !== 0) {
if(res.code === -2){ if (res.code === -2) {
Message({ Message({
message: res.message || '服务器开小差了...', message: res.message || '服务器开小差了...',
type: 'warning', type: 'warning',
duration: 2 * 1000 duration: 2 * 1000
}) })
}else{ } else if (res.code === 5) {
// to re-login
setTimeout(function () {
const hasToken = getToken()
if(hasToken){
MessageBox.confirm('登录已失效,可以取消停留在此页面上,或者再次登录', '确认登出', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
store.dispatch('user/resetToken').then(() => {
location.reload()
})
})
}
},200)
} else {
Message({ Message({
message: res.message || '服务器开小差了...', message: res.message || '服务器开小差了...',
type: 'error', type: 'error',
duration: 3 * 1000 duration: 3 * 1000
}) })
} }
return Promise.reject()
console.log(res.message)
if (res.code === 5) {
// to re-login
MessageBox.confirm('您已注销,可以取消停留在此页面上,或者再次登录', '确认登出', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
store.dispatch('user/resetToken').then(() => {
location.reload()
})
})
}
return Promise.reject(new Error(res.message || 'Error'))
} else { } else {
let message = '' let message = ''
if(res.message){ if(res.message){
@ -91,9 +90,8 @@ service.interceptors.response.use(
} }
}, },
error => { error => {
console.log('err' + error) // for debug
Message({ Message({
message: error.message, message: '哎呀!服务器出错,请稍后再试!',
type: 'error', type: 'error',
duration: 5 * 1000 duration: 5 * 1000
}) })