Я работаю над проектом мини-корзины с интерфейсом 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, что я делаю не так?