Vue -маршрутизатор второй навигационной защиты вызывает неперехваченное исключение - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь предотвратить несанкционированный доступ к определенным маршрутам, используя переменные requiresAdmin и сравнивая их со значениями из пользовательского хранилища. Все маршруты работают нормально, но каждый раз, когда вызывается next({name:permission}), он возвращает «uncaught exception: undefined» в консоли. Как я могу решить эту проблему?

Конфигурация маршрутизатора

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