需求:vue项目需要路由跳转时判断该用户是否已登录,若登录则可以进入页面,若不登陆则跳转登录页
采用在router.beforeEach
方法中查询后端接口根据返回字段来判断用户是否登录
router.beforeEach((to, from, next) => {
document.title = to.meta.title;
if (to.meta.type == 'fit') {
checkLogin().then(res => {
if(res.resCode === "000000") {
next();
} else {
next('/login'); // 跳转至登录页面
}
}).catch(e => {
next('/login');
});
}
});
但这样如果查询出错,会出现返回登录页面后一直请求一直返回的情况,无限循环,所以要将登录页进行额外处理
router.beforeEach((to, from, next) => {
document.title = to.meta.title;
//会员融合权益进入限制
if (to.meta.type == 'fit' && to.path != '/login') {
checkLogin().then(res => {
if(res.resCode === "000000") {
next();
} else {
next('/login'); // 跳转至登录页面
}
}).catch(e => {
next('/login');
});
}else if(to.meta.type == 'fit' && to.path == '/login'){
next();
}
});
我的博客主页 :https://qingmuzhang.gitee.io/