diff --git a/src/components/core/Drawer.vue b/src/components/core/Drawer.vue index 905dc0a531a36b79fb729f7433f8488d1161fe72..128e5a69810751359d3916d0d5d840d08b5806d4 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 8caa93a78ddd40d05e33ec412586b00dd50a3cdf..16e2615dee1ef754aa061e5283a96e945a1dd352 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 0442af5c327378cc92193bcf944c5a0c332fb2b4..ee7910b989803711216f37a71c77954ea4f89f22 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 6fab4ed5fa2eb24a95c8fa768d3b48ddea9d2568..36fc722a3f16bd02c7fe25a033d2ecee323d4e8a 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 ca06a91d896321bbb51ed59824b7dad96313d576..7a57bffc0a41a88e595b5544198307ba4fe96878 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 7b2e6b3d32ba36e6d9bf8c6b017f55de5c9822b8..b7222365124e5a3a54e920be2f0dd77e2bbfd618 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 1d8d567965103b8c2d6e54978859f5f87cf1b4f9..a19cb5b6b7f029f3f7bb67371372ff20b0ad38c8 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 46772201ab3ed33bca8cbc0a250b0783a98ea110..cabad9a486b7faaa1a3cecfdacfdfc704ed0c6f5 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{