From 653c87b28d7473ab97d8d115c8f796eabb45124a Mon Sep 17 00:00:00 2001
From: Choejiwon <jiwon0929@ajou.ac.kr>
Date: Tue, 10 Dec 2019 20:27:09 +0900
Subject: [PATCH] F5 is available

---
 src/components/core/Drawer.vue |  7 ++++---
 src/router/index.js            |  2 +-
 src/store/mutations.js         |  7 +++++++
 src/store/state.js             |  2 +-
 src/views/FinderBoard.vue      | 31 ++++++++++++++++++-------------
 src/views/Login.vue            |  2 ++
 src/views/LosterBoard.vue      | 32 +++++++++++++++++++-------------
 src/views/MyPage.vue           |  5 ++++-
 8 files changed, 56 insertions(+), 32 deletions(-)

diff --git a/src/components/core/Drawer.vue b/src/components/core/Drawer.vue
index 905dc0a..128e5a6 100644
--- a/src/components/core/Drawer.vue
+++ b/src/components/core/Drawer.vue
@@ -28,7 +28,7 @@
           <v-list-tile-title v-text="link.text"/>
         </v-list-tile>
 
-        <v-list-tile v-if="$store.state.isUserInfoGetted===true" active-class="success" class="v-list-item v-list__tile--buy" @click="logOut" to="/">
+        <v-list-tile v-if="$store.state.token" active-class="success" class="v-list-item v-list__tile--buy" @click="logOut" to="/">
           <v-list-tile-action>
             <v-icon>mdi-logout</v-icon>
           </v-list-tile-action>
@@ -37,7 +37,7 @@
           </v-list-tile-title>
         </v-list-tile>
 
-        <v-list-tile v-if="$store.state.isUserInfoGetted===false" active-class="success" class="v-list-item v-list__tile--buy" to="/login">
+        <v-list-tile v-if="!$store.state.token" active-class="success" class="v-list-item v-list__tile--buy" to="/login">
           <v-list-tile-action>
             <v-icon>mdi-login</v-icon>
           </v-list-tile-action>
@@ -46,7 +46,7 @@
           </v-list-tile-title>
         </v-list-tile>
 
-        <v-list-tile v-if="$store.state.isUserInfoGetted===false" active-class="success" class="v-list-item" to="/signup">
+        <v-list-tile v-if="!$store.state.token" active-class="success" class="v-list-item" to="/signup">
           <v-list-tile-action>
             <v-icon>mdi-account-plus</v-icon>
           </v-list-tile-action>
@@ -121,6 +121,7 @@ export default {
       this.$http.get('/login/logout').then((res)=>{
         if(res.data.success==true){
           this.$store.commit("setInitialize");
+          this.$store.commit('delToken');
         }
       })
     }
diff --git a/src/router/index.js b/src/router/index.js
index 8caa93a..16e2615 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -29,7 +29,7 @@ Vue.use(Router)
 
 // Create a new router
 const router = new Router({
-  mode: 'history',
+  // mode: 'history',
   routes: paths.map(path => route(path.path, path.view, path.name)).concat([
     { path: '*', redirect: '/' }
   ]),
diff --git a/src/store/mutations.js b/src/store/mutations.js
index 0442af5..ee7910b 100644
--- a/src/store/mutations.js
+++ b/src/store/mutations.js
@@ -23,5 +23,12 @@ export default {
     state.userInfo.email = "";
     state.userInfo.live = "";
     state.isUserInfoGetted = false;
+  },
+  getToken (state) {
+    state.token = localStorage.getItem('token')
+  },
+  delToken (state) {
+    localStorage.removeItem('token')
+    state.token = null
   }
 }
diff --git a/src/store/state.js b/src/store/state.js
index 6fab4ed..36fc722 100644
--- a/src/store/state.js
+++ b/src/store/state.js
@@ -10,6 +10,6 @@ export default {
     email: "",
     live: "",
   },
-
+  token: localStorage.getItem('token'),
   isUserInfoGetted: false //유저 정보가 현재 사용 가능한지 나타내는 플래그 변수
 }
diff --git a/src/views/FinderBoard.vue b/src/views/FinderBoard.vue
index ca06a91..7a57bff 100644
--- a/src/views/FinderBoard.vue
+++ b/src/views/FinderBoard.vue
@@ -91,19 +91,24 @@ export default {
     
   }),
   created() {
-    if(this.$store.state.isUserInfoGetted === false){
-      this.loginDialog = true;
-    }
-    else{
-      this.$http.get('/finderboard')
-        .then(response => {
-            this.items = response.data.finderboards;
-            for(let i=0; i<this.items.length; i++){
-              var base64data=Buffer.from(this.items[i].image.data.data,'binary').toString('base64');
-              this.items[i].image='data:image/jpeg;base64,'+base64data;
-            }
-        })
-    }
+    var log;
+    this.$http.get('/finderboard')
+      .then( (response) => {
+        log = response.data.message;
+
+        if(log == "required login"){
+          this.loginDialog = true;
+        }
+        else{
+          this.items = response.data.finderboards;
+          for(let i=0; i<this.items.length; i++){
+            var base64data=Buffer.from(this.items[i].image.data.data,'binary').toString('base64');
+            this.items[i].image='data:image/jpeg;base64,'+base64data;
+          }
+        }
+      }).catch(err => {
+          alert("ERR while FET losterboard" + err)
+        });
   },
   methods: {
     onClicked: function(){
diff --git a/src/views/Login.vue b/src/views/Login.vue
index 7b2e6b3..b722236 100644
--- a/src/views/Login.vue
+++ b/src/views/Login.vue
@@ -68,6 +68,8 @@ export default {
                 live: user.live
               };
               this.$store.commit("setUserInfo", payload);
+              localStorage.setItem('token', user._id)
+              this.$store.commit('getToken');
               // alert(this.$store.state.userInfo._id)
               this.$router.push('/');
           }
diff --git a/src/views/LosterBoard.vue b/src/views/LosterBoard.vue
index 1d8d567..a19cb5b 100644
--- a/src/views/LosterBoard.vue
+++ b/src/views/LosterBoard.vue
@@ -91,21 +91,27 @@ export default {
 
   }),
   created() {
-    if(this.$store.state.isUserInfoGetted === false){
-      this.loginDialog = true;
-    }
-    else{
-      this.$http.get('/losterboard')
-        .then(response => {
-            this.items = response.data.losterboards;
-            for(let i=0; i<this.items.length; i++){
-              var base64data=Buffer.from(this.items[i].image.data.data,'binary').toString('base64');
-              this.items[i].image='data:image/jpeg;base64,'+base64data;
-            }
-        }).catch(err => {
+    var log;
+    this.$http.get('/losterboard')
+      .then((response) => {
+        log = response.data.message;
+
+        if(log == "required login"){
+          this.loginDialog = true;
+        }
+        else{
+          this.$http.get('/losterboard')
+            .then(response => {
+                this.items = response.data.losterboards;
+                for(let i=0; i<this.items.length; i++){
+                  var base64data=Buffer.from(this.items[i].image.data.data,'binary').toString('base64');
+                  this.items[i].image='data:image/jpeg;base64,'+base64data;
+                }
+            });
+        }
+      }).catch(err => {
           alert("ERR while FET losterboard" + err)
         });
-    }
   },
   methods: {
     onClicked: function(){
diff --git a/src/views/MyPage.vue b/src/views/MyPage.vue
index 4677220..cabad9a 100644
--- a/src/views/MyPage.vue
+++ b/src/views/MyPage.vue
@@ -198,7 +198,10 @@ export default {
     }
   },
   created: function(){
-    if(this.$store.state.isUserInfoGetted === false){
+    console.log("Token : " + localStorage.getItem('token'))
+    console.log("User_id : " + this.$store.state.userInfo._id);
+    
+    if(this.$store.state.userInfo._id != localStorage.getItem('token')){
       this.loginDialog = true;
     }
     else{
-- 
GitLab