路由守卫中的白名单

发布时间 2023-10-27 11:11:22作者: 瑞姆

在写登录注册的路由守卫的时候,如果直接进行判断,会出现错误

router.beforeEach((to,from,next)=>{
  if(VueCookies.get("token")){
    next()
  }else{
    next("/login")
  }
})

 

 所以要在判断的时候添加白名单,
在路由守卫中使用白名单是一种常见的实践,允许你指定哪些路由是不需要进行权限检查的,用户可以在没有满足特定条件(例如登录)的情况下访问这些路由。这通常用于公共页面,如登录、注册、首页等。

const whiteList = ['/login', '/home', '/register'] // 白名单中的路由不需要权限即可访问

router.beforeEach((to, from, next) => {
  if (Vue.$cookies.get("token")) {
    // 用户已登录,放行
    next()
  } else {
    // 用户未登录,检查白名单
    if (whiteList.indexOf(to.path) !== -1) {
      // 在白名单中,放行
      next()
    } else {
      // 不在白名单中,重定向到登录页面
      next('/login')
    }
  }
})