Как перенаправить неаутентифицированного пользователя на страницу входа в laravel с помощью vue-router - PullRequest
0 голосов
/ 12 июня 2018

Я работаю над проектом мини-корзины с интерфейсом vue.js и интерфейсом Laravel.Страницы доступны для гостей, пока они не попадут на страницу оформления заказа, которая должна быть доступна только аутентифицированным пользователям.Я использую vue-router для навигации между URL-адресами, которые доступны гостям.Когда пользователь выбирает элементы, которые он / она хочет заказать, он нажимает кнопку

<router-link :to="{name: 'checkout', params: {total: totalCost}}" class="btn btn-default">Proceed to Checkout</router-link>

, которая переводит их на страницу проверки подлинности, если они проходят проверку подлинности (я создал контроллер с промежуточным ПО для проверки подлинности, чтобысправиться с этим).Если они не аутентифицированы, я хочу перенаправить их на страницу входа laravel, чтобы они могли войти в систему и вернуться на страницу оформления заказа после входа в систему.У меня есть охранник навигации Vue-маршрута для обработки этого:

router.beforeEach((to, from, next)=>{
    if(to.matched.some(rec => rec.meta.requiresAuth)){          
        const authUser = window.Laravel.user
        if(authUser){
            next()
        }else{
            const login = router.push('/login')
            next(login)
        }
    }
    next()
})

Проблема в том, что это не работает, так как я перенаправлен на пустой путь login.Просто чтобы быть уверенным, что я попытался перенаправить на компонент VUE, который я создал в моем файле маршрута, вот так:

{path: '/checkout-test', name: 'checkoutTest', props:true, component: checkoutTest, meta:{requiresAuth: true}}

Это сработало очень хорошо. Это означает, что проблема, скорее всего, связана с моим перехватом при аутентификации laravel.Я хочу, чтобы laravel обрабатывал аутентификацию по сравнению с vue.js, что я делаю не так?

...