import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) const routes = [ { path: '/', name: 'home', component: () => import('../views/HomeView'), meta: { requiresAuth: true, }, }, { path: '/login', name: 'login', component: () => import('../views/LoginView.vue'), meta: { guest: true, }, }, { path: '/settings', name: 'settings', component: () => import('../views/SettingsView.vue'), meta: { requiresAuth: true, }, }, ] const router = new VueRouter({ routes, }) router.beforeEach((to, from, next) => { if (to.matched.some((record) => record.meta.requiresAuth)) { if (localStorage.getItem('jwt') == null) { next({ name: 'login', query: { nextUrl: to.fullPath }, }) } else { next() } } else if (to.matched.some((record) => record.meta.guest)) { if (localStorage.getItem('jwt') == null) { next() } else { next({ name: 'home' }) } } else { next() } }) export default router