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

Login with session

parent 56e5ead1
No related branches found
No related tags found
No related merge requests found
...@@ -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,27 +6,21 @@ ...@@ -6,27 +6,21 @@
<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-if="checkLoggedIn"> <div v-else>
<Logout /> <Logout />
</div> </div>
</div> </div>
</div>
<div class="md-toolbar-row"> <div class="md-toolbar-row">
<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>
......
...@@ -96,61 +96,51 @@ ...@@ -96,61 +96,51 @@
</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() { created() {
this this.$http.get("/api/books").then(response => {
.$http
.get('/api/books')
.then(response => {
this.Books = response.data; this.Books = response.data;
console.log("Success") console.log("Success");
console.log(this.Books) console.log(this.Books);
}) });
}, },
methods: { methods: {
Search: function() { Search: function() {
if(this.grade !== null && this.major !== null && this.type !== null) if (this.grade !== null && this.major !== null && this.type !== null) {
{
this.SearchResult = true; this.SearchResult = true;
console.log(this.SearchResult); console.log(this.SearchResult);
} else {
alert("검색할 카테고리를 전부 입력해주세요");
} }
else
{
alert("검색할 카테고리를 전부 입력해주세요")
}
}, },
Register() { Register() {
this.$http this.$http
...@@ -167,27 +157,24 @@ export default { ...@@ -167,27 +157,24 @@ export default {
}; };
</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.
Please register or to comment