Я настраиваю проект laravel, vue и использую JWT auth для пользователя аутентификация .Я пытаюсь защитить маршруты с помощью Vue Router, и он получает токен из локального хранилища и дает доступ аутентичному пользователю к определенному маршруту, но один раз по другому маршруту, если я щелкаю по любому другому маршруту или обновляю страницу, на которую он перенаправляет менястраница "/login"
снова.Токен остается неизменным все время, но он рассматривает токен, поскольку пользователь не является подлинным.Пожалуйста, помогите, поскольку я новичок в laravel и vue
Я пытался использовать метаинформацию, но это не сработало.Кроме того, я попытался удалить токен из локального хранилища и создал его заново, но у меня ничего не работает.
rout.js file
export const routes = [
{
path: '/', component: Home, name: 'home'
},
{
path: '/dashboard', component: Dashboard, name: 'dashboard', meta:{requiresAuth: true}
},
{
path: '/login', component: Login, name: 'login'
}
];
Приложение.js файл
import VueRouter from 'vue-router';
import { routes } from './routes.js';
window.Vue = require('vue');
Vue.use(VueRouter);
const router = new VueRouter({
mode: 'history',
routes
});
router.beforeEach((to, from, next) => {
console.log(to)
if (to.meta.requiresAuth) {
const authUser = JSON.stringify(window.localStorage.getItem('usertoken'))
if(authUser && authUser.accessToken){
console.log("here")
next();
}else{
next({name: 'login'});
}
}
next();
});
const app = new Vue({
el: '#app',
router
});
Я ожидаю, что выходные данные будут такими, как если пользователь аутентичен, а метод router.beforeEach
находит токен, пользователь может добраться до любого маршрута, пока токен не будет удален илиизменилось.Более того, пользователь не должен переходить на '/login'
каждый раз, когда нажимается <router-link>
или страница обновляется.