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: {