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