【问题标题】:how to restrict user from going to admin area vue router guard如何限制用户进入管理区域vue router guard
【发布时间】:2021-08-13 03:51:46
【问题描述】:

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

这是我的代码:

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()

});

【问题讨论】:

    标签: vuejs2 vuex vue-router


    【解决方案1】:

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

    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()
    });
    

    【讨论】:

      猜你喜欢
      • 2020-12-09
      • 2021-04-06
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多