如果使用管理员进行路由

我的应用程序具有3个不同的访问级别。

我希望管理员可以访问所有页面。为此,我将这样的代码放在管理员中:

else if (claims.admin) { 
 return next() 
}

这样,管理员就可以访问应用程序的所有页面。

但是有一个问题,就是这样,我以admin身份登录,而admin在登录页面上保持不变,并且不会转发到任何页面。 我希望管理员保留对所有页面的访问权限,但是在登录时,他会将他重定向到admin.vue页面。

完整代码:

router.beforeEach((to, from, next) => {    
firebase.auth().onAuthStateChanged(userAuth => {
if (userAuth) {
  firebase.auth().currentUser.getIdTokenResult()
    .then(function ({
      claims
    }) {

if (claims.customer) {
  if (to.path !== '/customer')
   return next({
    path: '/customer',
   })
  } else if (claims.admin) {
  if (to.path !== '/admin')
   return next({
    path: '/admin',
   })
  } else if (claims.driver) {
if (to.path !== '/driver')
  return next({
   path: '/driver',
  })
 }     
 })
 })
评论