From 1859e656d28e17bee3e9fe75101e248911dede4d Mon Sep 17 00:00:00 2001
From: jaypae95 <jaypae95@hbsmith.io>
Date: Wed, 4 Dec 2019 20:01:34 +0900
Subject: [PATCH] set token and permissions to page

---
 src/router/index.js    | 40 +++++++++++++++++++++++++++++++++++-----
 src/views/LogIn.vue    |  6 +++++-
 src/views/MainPage.vue |  2 +-
 3 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 32afcf1..27b481c 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 dc52ee3..9b661d1 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 5ea8e12..47be038 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: {
-- 
GitLab