时间戳 vue 前端控制 保持30分钟登录状态
router.beforeEach((to, from, next) => {
/* 路由发生变化修改页面title */
if (to.meta.title) {
document.title = to.meta.title
}
// if (to.path == '/login') {
// //保存当前路由
// localStorage.setItem('preRoute', router.currentRoute.fullPath)
// next()
// return
// }
f (localStorage.getItem('start_time')) {
if (new Date().getTime() - localStorage.getItem('start_time') >= 30 * 60 * 1000) {
localStorage.clear()
next({
path: '/login'
})
return
}
}
next()
})
ajax 请求配合
axios(params)
.then(res => {
if (res && (res.unauthorized || res.statusCode === 401)) {
window.location.href = '/#/login'
}
if (res.status == 204) {
defer.resolve()
return
}
if (res.type === 'application/x-msdownload') {
redirectToIframe(res.request.responseURL)
} else if (res.data) {
if (res.data.code === 0) {
localStorage.setItem('start_time', new Date().getTime()) // -------设置时间戳
defer.resolve(res.data)
} else if (res.data.code === 7) {
// sessionStorage.removeItem('token')
// window.location.href = '/#/login'
} else {
Message({
message: res.data.msg,
type: 'error'
})
defer.reject(res.data)
}
} else {
defer.reject()
}
})
.catch(err => {
defer.reject(err)
})