如何限制用户进入管理区域vue router guard

how to restrict user from going to admin area vue router guard

我写了一个代码,应该限制非用户访问用户和管理区域,并限制用户访问管理区域,第一部分有效,但第二部分没有。用户可以访问管理区域

这是我的代码:

router.beforeEach((to, from, next) => {
if (to.name !== 'loginregister.loginpage' && to.name !== 'index.index' && to.name !== 'products.index' && to.name !== 'products.show' && to.name !== 'order.checkout' && !store.state.userToken){
    next({ name: 'loginregister.loginpage' });
}

else if(store.state.isAdmin && to.name !== 'user.feed' && to.name !== 'user.workout' && to.name !== 'user.diet' && to.name !== 'products.index' && to.name !== 'products.show' && to.name !== 'order.checkout' && to.name !== 'order.summary' && to.name !== 'user.home'){
        next({ name: 'user.feed' });
    }
else next()

});

我把它改成了这个,现在可以用了

router.beforeEach((to, from, next) => {

if(!store.state.userToken){
    if (to.name !== 'loginregister.loginpage' && to.name !== 'index.index' && to.name !== 'products.index' && to.name !== 'products.show' && to.name !== 'order.checkout'){
        next({ name: 'loginregister.loginpage' });
    }
}

else if(store.state.userToken){

if(!store.state.isAdmin && to.name !== 'user.feed' && to.name !== 'user.workout' && to.name !== 'user.diet' && to.name !== 'products.index' && to.name !== 'products.show' && to.name !== 'order.checkout' && to.name !== 'order.summary' && to.name !== 'user.home'){
        next({ name: 'user.feed' });
    }
    else next()
}
next()
});