
File name
Commit message
Commit date
File name
Commit message
Commit date
2022-11-06
File name
Commit message
Commit date
<template>
<div v-cloak>
<Header></Header>
<Menu></Menu>
<div class="main-warp">
<router-view />
</div>
<Footer></Footer>
</div>
</template>
<script>
import { useStore } from "vuex";
import axios from "axios";
import Header from "../layout/Header.vue";
import Menu from "../layout/Menu.vue";
import Footer from "../layout/Footer.vue";
const App = {
data: function () {
return {
store: useStore(),
};
},
methods: {
//로그인 사용자 조회
loginUserSelectOne: function (callback) {
let vm = this;
axios({
url: "/user/loginUserSelectOne.json",
method: "post",
headers: {
"Content-Type": "application/json; charset=UTF-8",
},
}).then(function (response) {
console.log("getIsLogin - response : ", response);
if (response.data.loginUser != null && response.data.loginUser['user_id'] != null) {
vm.store.commit("setLoginUser", response.data.loginUser);
} else {
vm.store.commit("setLoginUser", null);
}
if (response.data.key != null && response.data.key['salt'] != null) {
vm.store.commit("setKey", response.data.key);
// console.log("vm.store",vm.store);
// console.log("response.data.key['salt']",response.data.key['salt']);
} else {
vm.store.commit("setKey", null);
}
console.log("vm.store : ", vm.store);
callback(response.data);
}).catch(function (error) {
console.log("getIsLogin - error : ", error);
});
}
},
watch: {},
computed: {},
components: {
Header: Header,
Menu: Menu,
Footer: Footer,
},
mounted: function () {
//vue router에게 페이지 변경 요청을 하여, router가 페이지 변경 전, 실행되는 훅(이벤트)
this.$router.beforeEach((to, from, next) => {
//console.log("to : ", to, ", from : ", from);
//로그인 사용자 조회 후, callback을 통해 로그인 사용자 정보 받기
this.loginUserSelectOne(function (store) {
//로그인 유무(로그인 정보가 있으면 True, 없으면 False)
let isLogin = (store.loginUser != null && store.loginUser['user_id'] != null);
//로그인 상태 일 때
if (isLogin == true) {
//로그인 페이지 이동은 못하게 함
if (to.path == '/Login.page') {
next(false);
} else {//로그인 페이지 이 외의 페이지들을 이동 가능하게 함
next();
}
} else {//로그인 상태가 아닐 때
//로그인 페이지에서 다른 페이지로 이동하려고 할 때, 이동 못하게 함
if (from.path == '/Login.page') {
next(false);
} else {//로그인 페이지 이외의 페이지에서, 페이지 이동을 하려고 할 때
//로그인 페이지로 이동은 무조건 가능
if (to.path == "/Login.page") {
next();
} else {//로그인 페이지로 무조건 이동
next("/Login.page");
}
}
}
/* if (to.path == "/") {
if (isLogin == true) {
next();
} else {
next("/login.page");
}
} else {
if (isLogin == true) {
if (to.path == "/login.page") {
next(from.path);
} else {
next();
}
} else {
if (to.path == "/login.page") {
next();
} else {
next("/login.page");
}
}
} */
});
});
},
};
export default App;
</script>
<style scoped>
.main-warp{position: relative; height: -webkit-fill-available;}
[v-cloak] {
display: none;
}
</style>