Add route requiresAuth + redirect
This commit is contained in:
parent
7e846daa8d
commit
6487f932a8
@ -8,6 +8,8 @@ import NoteCreation from '../views/NoteCreation.vue'
|
|||||||
|
|
||||||
Vue.use(VueRouter)
|
Vue.use(VueRouter)
|
||||||
|
|
||||||
|
import store from '../store';
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
@ -27,7 +29,10 @@ const routes = [
|
|||||||
{
|
{
|
||||||
path: '/note/new',
|
path: '/note/new',
|
||||||
name: 'NoteCreation',
|
name: 'NoteCreation',
|
||||||
component: NoteCreation
|
component: NoteCreation,
|
||||||
|
meta: {
|
||||||
|
requiresAuth: true,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -37,4 +42,14 @@ const router = new VueRouter({
|
|||||||
routes
|
routes
|
||||||
})
|
})
|
||||||
|
|
||||||
|
router.beforeEach((to, from, next) => {
|
||||||
|
// If user is not signed in -> redirect to /signin
|
||||||
|
if (to.matched.some(record => record.meta.requiresAuth) && !store.getters.isLoggedIn) {
|
||||||
|
next({
|
||||||
|
path: '/signin',
|
||||||
|
params: {nextUrl: to.fullPath}
|
||||||
|
})
|
||||||
|
} else
|
||||||
|
next()
|
||||||
|
})
|
||||||
export default router
|
export default router
|
||||||
|
|||||||
@ -14,9 +14,14 @@ export default new Vuex.Store({
|
|||||||
setToken(token)
|
setToken(token)
|
||||||
},
|
},
|
||||||
clearToken(state) {
|
clearToken(state) {
|
||||||
state.token = ''
|
state.token = null
|
||||||
clearToken()
|
clearToken()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {}
|
actions: {},
|
||||||
|
getters: {
|
||||||
|
isLoggedIn(state) {
|
||||||
|
return state.token !== null;
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user