Skip to content
Snippets Groups Projects
Commit eba4d26a authored by LeeYongJae's avatar LeeYongJae
Browse files

Merge branch 'login_with_session' into 'master'

Login with session

See merge request !13
parents 56e5ead1 5037fce8
No related branches found
No related tags found
1 merge request!13Login with session
...@@ -43,11 +43,12 @@ router.get("/logout", function(req, res) { ...@@ -43,11 +43,12 @@ router.get("/logout", function(req, res) {
if (err) { if (err) {
console.log(err); console.log(err);
} else { } else {
res.redirect("/"); // 수정해야 할 듯 console.log("Hello");
res.redirect("http://localhost:8081/"); // 수정해야 할 듯
} }
}); });
} else { } else {
res.redirect("/"); res.redirect("http://localhost:8081/");
} }
}); });
......
...@@ -6,15 +6,13 @@ ...@@ -6,15 +6,13 @@
<span class="md-title">MajorBook</span> <span class="md-title">MajorBook</span>
</div> </div>
<div style="flex:1"> <div style="flex:1; height:20px" align="right">
<div align="right"> <div v-if="isLoggedIn === false">
<div v-if="!checkLoggedIn"> <Login />
<Login /> <SignUp />
<SignUp /> </div>
</div> <div v-else>
<div v-if="checkLoggedIn"> <Logout />
<Logout />
</div>
</div> </div>
</div> </div>
...@@ -22,11 +20,7 @@ ...@@ -22,11 +20,7 @@
<md-tabs class="md-primary" style="margin: auto; height: 30px"> <md-tabs class="md-primary" style="margin: auto; height: 30px">
<md-tab id="tab-home" md-label="Home" to="/home"></md-tab> <md-tab id="tab-home" md-label="Home" to="/home"></md-tab>
<md-tab id="tab-profile" md-label="Profile" to="/profile"></md-tab> <md-tab id="tab-profile" md-label="Profile" to="/profile"></md-tab>
<md-tab <md-tab id="tab-list" md-label="전공서적보기" to="/BookSearchPage"></md-tab>
id="tab-list"
md-label="전공서적보기"
to="/BookSearchPage"
></md-tab>
</md-tabs> </md-tabs>
</div> </div>
</md-app-toolbar> </md-app-toolbar>
...@@ -63,25 +57,26 @@ export default { ...@@ -63,25 +57,26 @@ export default {
}, },
methods: { methods: {
checkSession() { checkSession() {
this.$http.get("/api/login/checkSession").then(function(response) { this.$http.get("/api/login/checkSession").then(response => {
//console.log(response.data); console.log(response.data);
if (response.data === true) { if (response.data === true) {
return true; return (this.isLoggedIn = true);
//this.$router.push("home");
} else { } else {
return false; return (this.isLoggedIn = false);
} }
}); });
} }
},
computed: {
checkLoggedIn() {
console.log(this.checkSession());
if (this.checkSession() === true) {
return true;
}
return false;
}
} }
// computed: {
// checkLoggedIn() {
// console.log(this.checkSession());
// if (this.checkSession() === true) {
// return (this.isLoggedIn = true);
// }
// return (this.isLoggedIn = false);
// }
// }
}; };
</script> </script>
......
...@@ -33,18 +33,18 @@ ...@@ -33,18 +33,18 @@
<md-card-header> <md-card-header>
<md-card-header-text> <md-card-header-text>
<div class="md-title"> <div class="md-title">
{{Book.title}} {{ Book.title }}
<br /> <br />
<br /> <br />
</div> </div>
<div class="md-subhead" style="text-align:left;font-weight: bold;"> <div class="md-subhead" style="text-align:left;font-weight: bold;">
# 학년: {{Book.grade}} # 학년: {{ Book.grade }}
<br /> <br />
# 전공: {{Book.major}} # 전공: {{ Book.major }}
<br /> <br />
# 세부사항: {{Book.type}} # 세부사항: {{ Book.type }}
<br /> <br />
# 매물: {{Book.stock}} # 매물: {{ Book.stock }}
</div> </div>
</md-card-header-text> </md-card-header-text>
<md-card-media md-medium> <md-card-media md-medium>
...@@ -96,98 +96,85 @@ ...@@ -96,98 +96,85 @@
</div> </div>
</template> </template>
<script> <script>
import Vue from 'vue' import Vue from "vue";
import VueMaterial from 'vue-material' import VueMaterial from "vue-material";
import Multiselect from 'vue-multiselect' import Multiselect from "vue-multiselect";
import 'vue-material/dist/vue-material.min.css' import "vue-material/dist/vue-material.min.css";
import 'vue-material/dist/theme/default.css' import "vue-material/dist/theme/default.css";
Vue.use(VueMaterial) Vue.use(VueMaterial);
export default { export default {
components: { Multiselect }, components: { Multiselect },
name: 'MaterialIcons', name: "MaterialIcons",
data() { data() {
return { return {
bottomPosition: 'md-bottom-right', bottomPosition: "md-bottom-right",
active : false, active: false,
SearchResult : false, SearchResult: false,
grade: null, grade: null,
major: null, major: null,
type: null, type: null,
option1: ['1학년','2학년','3학년','4학년'], option1: ["1학년", "2학년", "3학년", "4학년"],
option2: ['소프트웨어학과','미디어학과','경제학과'], option2: ["소프트웨어학과", "미디어학과", "경제학과"],
option3: ['전공 필수', '전공 선택', '교양선택','기초과목'], option3: ["전공 필수", "전공 선택", "교양선택", "기초과목"],
Books : [ Books: [],
], submit: {
submit:{ title: "",
title : "", grade: "",
grade: "", major: "",
major : "", src: ""
src : "", }
} };
}; },
created() {
this.$http.get("/api/books").then(response => {
this.Books = response.data;
console.log("Success");
console.log(this.Books);
});
},
methods: {
Search: function() {
if (this.grade !== null && this.major !== null && this.type !== null) {
this.SearchResult = true;
console.log(this.SearchResult);
} else {
alert("검색할 카테고리를 전부 입력해주세요");
}
}, },
created() { Register() {
this this.$http
.$http .post("/api/books", this.submit)
.get('/api/books') .then(res => {
.then(response => { console.log("Sumit Success");
this.Books = response.data; })
console.log("Success") .catch(err => {
console.log(this.Books) console.log("Submit failed");
}) });
}, this.active = false;
methods:{
Search: function(){
if(this.grade !== null && this.major !== null && this.type !== null)
{
this.SearchResult = true;
console.log(this.SearchResult);
}
else
{
alert("검색할 카테고리를 전부 입력해주세요")
}
},
Register(){
this.$http
.post("/api/books", this.submit)
.then(res => {
console.log("Sumit Success");
})
.catch(err => {
console.log("Submit failed");
});
this.active = false;
} }
} }
}; };
</script> </script>
<style lang="css">
<style lang='css'> html,
html,body { body {
text-align: center; text-align: center;
margin:0; margin: 0;
width:100%; width: 100%;
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
justify-content: center; justify-content: center;
} }
.search { .search {
margin-Bottom: 0.5%; margin-bottom: 0.5%;
} }
.select { .select {
text-align: center;
text-align: center; margin-top: 2%;
margin-Top: 2%;
} }
.button{ .button {
margin-top: 70px; margin-top: 70px;
} }
</style> </style>
<style src="vue-multiselect/dist/vue-multiselect.min.css"> <style src="vue-multiselect/dist/vue-multiselect.min.css"></style>
</style>
\ No newline at end of file
...@@ -13,10 +13,8 @@ ...@@ -13,10 +13,8 @@
<md-input v-model="user.password" type="password" /> <md-input v-model="user.password" type="password" />
</md-field> </md-field>
<md-button class="md-primary" v-on:click="login">Login</md-button> <md-button class="md-raised md-primary" v-on:click="login">Login</md-button>
<md-button class="md-primary" v-on:click="active = false" <md-button class="md-primary" v-on:click="active = false">Close</md-button>
>Close</md-button
>
</md-dialog> </md-dialog>
</div> </div>
</template> </template>
...@@ -27,6 +25,7 @@ import VueMaterial from "vue-material"; ...@@ -27,6 +25,7 @@ import VueMaterial from "vue-material";
import "vue-material/dist/vue-material.min.css"; import "vue-material/dist/vue-material.min.css";
import "vue-material/dist/theme/default.css"; import "vue-material/dist/theme/default.css";
Vue.use(VueMaterial); Vue.use(VueMaterial);
export default { export default {
data: function() { data: function() {
return { return {
...@@ -50,6 +49,7 @@ export default { ...@@ -50,6 +49,7 @@ export default {
alert("success login"); alert("success login");
//this.$router.push("Logout"); //this.$router.push("Logout");
this.active = false; this.active = false;
location.reload();
}, },
error => { error => {
// error 를 보여줌 // error 를 보여줌
......
...@@ -20,7 +20,9 @@ export default { ...@@ -20,7 +20,9 @@ export default {
console.log("Logout start"); console.log("Logout start");
this.$http.get("/api/login/logout").then(response => { this.$http.get("/api/login/logout").then(response => {
if (response) { if (response) {
alert("success logout");
//this.$router.push("home"); //this.$router.push("home");
location.reload();
} }
}); });
} }
......
<template> <template>
<div id="logout"> <div id="signup">
<md-button class="md-primary" v-on:click="active = true">Sign Up</md-button> <md-button class="md-primary" v-on:click="active = true">Sign Up</md-button>
<md-dialog :md-active.sync="active" style="width:500px; height: 1000px"> <md-dialog :md-active.sync="active" style="width:500px; height: 1000px">
<md-dialog-title>Sign Up</md-dialog-title> <md-dialog-title>Sign Up</md-dialog-title>
...@@ -23,17 +23,13 @@ ...@@ -23,17 +23,13 @@
<md-input name="email" v-model="user.email" /> <md-input name="email" v-model="user.email" />
</md-field> </md-field>
<md-button class="md-raised md-primary" v-on:click="signUp" <md-button class="md-raised md-primary" v-on:click="signUp">Sign Up</md-button>
>Sign Up</md-button <md-button class="md-primary" v-on:click="active = false">Close</md-button>
>
<md-button class="md-primary" v-on:click="active = false"
>Close</md-button
>
</md-dialog> </md-dialog>
</div> </div>
</template> </template>
<style> <style scoped>
.select { .select {
margin: 15px; margin: 15px;
display: inline-flex; display: inline-flex;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment