我试图通过使用requiresAdmin
变量并对照用户存储中的值来检查对某些路由的未经授权的访问。所有路由都工作正常,但是每次调用next({name:permission})
时,它都会在控制台中返回“未捕获的异常:未定义” 。我该如何解决?
路由器配置
const router = new VueRouter({
mode: 'history',
routes: [
{
path: '/',
redirect: {name: 'dashboard'}
},
{
path: '/dashboard',
name: 'dashboard',
component: DashboardPage,
meta: {
requiresAuth: true,
is_admin: true
}
},
{
path: '/login',
name: 'login',
component: LoginPage,
meta: {
requiresAuth: false,
is_admin: false,
}
},
{
path: '/permission',
name: 'permission',
component: PermissionPage,
meta: {
requiresAuth: true,
is_admin: false
}
}
]
})
router.beforeEach((to, from, next) => {
if (!store.getters['user/isLoggedIn'] && to.matched.some(record => record.meta.requiresAuth)) {
next({
name: 'login',
})
} else if (!store.getters['user/isAdmin'] && to.matched.some(record => record.meta.is_admin)) {
next({
name: 'permission',
})
} else {
next()
}
});