Skip to content

Instantly share code, notes, and snippets.

@blogcacanid
Created October 4, 2020 03:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save blogcacanid/e0f5c7005d80e37aa4189121c105d980 to your computer and use it in GitHub Desktop.
Save blogcacanid/e0f5c7005d80e37aa4189121c105d980 to your computer and use it in GitHub Desktop.
routes.js - Login System Dengan JSON Web Token Laravel 7 Dan Vue - 02 Front End
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import LoginComponent from './components/LoginComponent'
import HomeComponent from './components/HomeComponent'
import LogoutComponent from './components/LogoutComponent'
import store from './store'
const routes = [
{
path: '/',
redirect: { name: 'login' }
},
{
path: '/home',
name: 'home',
component: HomeComponent,
meta: { requiresAuth: true }
},
{
path: '/login',
name: 'login',
component: LoginComponent
},
{
path: '/logout',
name: 'logout',
component: LogoutComponent
}
]
const router = new VueRouter({
routes
})
router.beforeEach((to, from, next) => {
// check if the route requires authentication and user is not logged in
if (to.matched.some(route => route.meta.requiresAuth) && !store.state.isLoggedIn) {
// redirect to login page
next({ name: 'login' })
return
}
// if logged in redirect to dashboard
if(to.path === '/login' && store.state.isLoggedIn) {
next({ name: 'home' })
return
}
next()
});
export default router
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment