在项目中,我们会经常遇到超时登出的功能。跟后台约定好超时登出后返回的code。目前这个项目的登出code是401。由于我们的axios是全局配置的,所以只需要在axios发送get或post请求的地方做一个是否登出的判断:(以下已post为例)
axios .post(url, params).then(response => {
if (response.data.code == '0' || response.data.code == '200')
let copyDate = JSON.parse(JSON.stringify(response.data))
resolve(response.data) // 成功后返回
} else if (response.data.code == '401') {
router.push({
path: '/login',
query: { redirect: location.hostname }
})
} else {
resolve(response.data)}
配置好后在login.vue中的login方法中做一下判断,如果是在同一个地址下访问的页面,登出后go(-1),返回之前的那个页面,如果是从外部进入登录页面的,登录成功后会跳到首页(/homePage)。这里可以去了解一下location:hostname.
if (this.$route.query.redirect == location.hostname)
{this.$router.go(-1);
} else {
this.$router.push({ path: "/homePage" });
}
网友评论