From ce3ace2bd21fe6b0e3ed057da9f9133896bc5f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0?= Date: Mon, 19 Sep 2022 16:33:20 +0900 Subject: [PATCH] vue2_frontend... --- src/components/LoginComponent.vue | 8 +- src/components/RegisterComponent.vue | 120 +++++++++++++++++++++++++ src/components/layout/HeaderLayout.vue | 11 ++- src/interceptors/interceptor.js | 4 + src/router/index.js | 8 ++ src/store/auth.store.js | 13 +++ src/views/registerView.vue | 23 +++++ 7 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 src/components/RegisterComponent.vue create mode 100644 src/views/registerView.vue diff --git a/src/components/LoginComponent.vue b/src/components/LoginComponent.vue index c39492d..7f5627b 100644 --- a/src/components/LoginComponent.vue +++ b/src/components/LoginComponent.vue @@ -41,7 +41,8 @@ }} - Login + Login  + Register @@ -87,6 +88,11 @@ export default { console.log(e) alert(e.message) } + }, + async goRegister() { + await this.$router.push({ + name: 'register' + }) } } } diff --git a/src/components/RegisterComponent.vue b/src/components/RegisterComponent.vue new file mode 100644 index 0000000..2804306 --- /dev/null +++ b/src/components/RegisterComponent.vue @@ -0,0 +1,120 @@ + + + diff --git a/src/components/layout/HeaderLayout.vue b/src/components/layout/HeaderLayout.vue index a654674..1f77f3d 100644 --- a/src/components/layout/HeaderLayout.vue +++ b/src/components/layout/HeaderLayout.vue @@ -37,7 +37,7 @@ - Profile + Profile Sign Out @@ -59,6 +59,15 @@ export default { ...authStore.mapGetters(['isAuthenticated']) }, methods: { + async profile() { + try { + await this.$store + .dispatch('AuthStore/profile', {}) + .then(() => this.redirect()) + } catch (e) { + alert(e.message) + } + }, async redirect() { if (!this.isAuthenticated && this.$router.name != 'home') { await this.$router.push({ name: 'home' }) diff --git a/src/interceptors/interceptor.js b/src/interceptors/interceptor.js index 39c22c5..b4e088d 100644 --- a/src/interceptors/interceptor.js +++ b/src/interceptors/interceptor.js @@ -60,6 +60,10 @@ const interceptor = (instance) => { const { access_token } = rs.data tokenService.updateAccessToken(access_token) }) + .catch((err) => { + console.log(err) + throw new Error('로그인을 해주세요') + }) //Refresh Token도 expire되었으면 Login 처리 //reload로 access_token을 재발급을 받았으면 원래 APICall 다시 호출 diff --git a/src/router/index.js b/src/router/index.js index c5f044d..330f903 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -27,6 +27,14 @@ const routes = [ /* webpackChunkName: "auth", webpackPrefetch:true */ '@/views/loginView.vue' ) }, + { + path: '/register', + name: 'register', + component: () => + import( + /* webpackChunkName: "auth", webpackPrefetch:true */ '@/views/registerView.vue' + ) + }, { path: '/todo', name: 'todo', diff --git a/src/store/auth.store.js b/src/store/auth.store.js index a7ff14f..b7cd571 100644 --- a/src/store/auth.store.js +++ b/src/store/auth.store.js @@ -22,6 +22,13 @@ const state = { label: '로그인 암호', placeholder: 'password', rules: { required: true, min: 4, max: 20 } + }, + name: { + key: 'name', + type: 'text', + label: '사용자 이름', + placeholder: 'name', + rules: { required: true, min: 4, max: 20 } } } } @@ -81,6 +88,12 @@ const actions = { } }) }, + profile: async function () { + await api.get('/auth/profile').then((response) => { + const { data } = response + console.log(data) + }) + }, logout: function (context) { return context.commit('logout') }, diff --git a/src/views/registerView.vue b/src/views/registerView.vue new file mode 100644 index 0000000..9812999 --- /dev/null +++ b/src/views/registerView.vue @@ -0,0 +1,23 @@ + + +