diff --git a/src/router/index.js b/src/router/index.js index 32afcf1a1e44ebd38eed50c9de05eeeb98c49080..27b481c6132f78f7f971c3d555922607be607218 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -12,7 +12,7 @@ import ConfirmPlan from '@/views//ConfirmPlan' Vue.use(Router) -export default new Router({ +let router = new Router({ mode: 'history', routes: [ { @@ -33,7 +33,10 @@ export default new Router({ { path: '/mypage', name: 'MyPage', - component: MyPage + component: MyPage, + meta: { + requiresAuth: true + } }, { path: '/attractionlist', @@ -43,12 +46,18 @@ export default new Router({ { path: '/makeplan', name: 'MakePlan', - component: MakePlan + component: MakePlan, + meta: { + requiresAuth: true + } }, { path: '/shareplan', name: 'SharePlan', - component: SharePlan + component: SharePlan, + meta: { + requiresAuth: true + } }, { path: '/signup', @@ -58,7 +67,28 @@ export default new Router({ { path: '/confirmplan', name: 'ConfirmPlan', - component: ConfirmPlan + component: ConfirmPlan, + meta: { + requiresAuth: true + } } ] }) + +router.beforeEach((to, from, next) => { + if (to.matched.some(record => record.meta.requiresAuth)) { + console.log(localStorage.getItem('token')) + if (localStorage.getItem('token') == null) { + next({ + path: '/login', + params: {nextUrl: to.fullPath} + }) + } else { + next() + } + } else { + next() + } +}) + +export default router diff --git a/src/views/LogIn.vue b/src/views/LogIn.vue index dc52ee364b83edadc3ef6849020bf3e02c6705e3..9b661d1dfc9393e403239c9f93659bea6a2e7ea9 100644 --- a/src/views/LogIn.vue +++ b/src/views/LogIn.vue @@ -27,7 +27,11 @@ export default { user_password: this.user_password } this.$store.dispatch('login', data) - .then(() => this.$router.push('/')) + .then(res => { + localStorage.setItem('user', JSON.stringify(res.data.user)) + localStorage.setItem('token', res.data.token) + this.$router.push('/') + }) .catch(err => console.log(err)) } } diff --git a/src/views/MainPage.vue b/src/views/MainPage.vue index 5ea8e12c33e85d5023082f7bc7c238e77231ace2..47be038510445ba75b83ffb472fd5a10316cedfa 100644 --- a/src/views/MainPage.vue +++ b/src/views/MainPage.vue @@ -49,7 +49,7 @@ export default { methods: { logout: function () { this.$store.dispatch('logout') - .then(() => this.$router.push('login')) + .then(() => this.$router.push('/login')) } }, computed: {