From 01a48e0bca2712167238db408ee67b98c80d7f4e Mon Sep 17 00:00:00 2001 From: jiyeon Date: Thu, 13 Feb 2025 20:03:41 +0900 Subject: [PATCH 1/6] =?UTF-8?q?=F0=9F=90=9B=20=20[fix]=20:=20=EC=A0=95?= =?UTF-8?q?=EC=A7=80=EB=90=9C=20=EA=B3=84=EC=A0=95=EC=9D=80=20=EC=9D=B4?= =?UTF-8?q?=EB=A9=94=EC=9D=BC=20=EC=A0=84=EC=86=A1=EC=9D=84=20=EB=A7=89?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20api=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/auth.ts | 4 ++-- src/views/PwChangeEmail.vue | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/api/auth.ts b/src/api/auth.ts index 6ea94ad..532a04b 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -3,12 +3,12 @@ import Cookies from 'js-cookie' import { useMemberStore } from '@/stores/member' -export const postPasswordEmailSend = async (name: string, email: string) => { +export const postPasswordEmailSend = async (name: string, email: string, id: string) => { const request = { name: name, email: email } - const response = await axiosInstance.post('/api/new-password', request) + const response = await axiosInstance.post(`/api/new-password?nickname=${id}`, request) return response.data } diff --git a/src/views/PwChangeEmail.vue b/src/views/PwChangeEmail.vue index 0f8db59..1f77e3b 100644 --- a/src/views/PwChangeEmail.vue +++ b/src/views/PwChangeEmail.vue @@ -85,7 +85,13 @@ const closeFailModal = () => { } const handleCheck = async () => { - await postPasswordEmailSend(name.value, email.value) - isModalVisible.value = !isModalVisible.value + const id = email.value.split('@')[0] + try { + await postPasswordEmailSend(name.value, email.value, id) + isModalVisible.value = !isModalVisible.value + } catch { + messageHeader.value = '으에?' + messageBody.value = '으에?' + } } From 15045ead0e2fd3e7a377d1a621624fbfc1f069fa Mon Sep 17 00:00:00 2001 From: jiyeon Date: Fri, 14 Feb 2025 14:35:52 +0900 Subject: [PATCH 2/6] =?UTF-8?q?=F0=9F=90=9B=20=20[fix]=20:=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8,=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EC=9E=AC=EC=84=A4=EC=A0=95=EC=97=90=20=EB=8C=80=ED=95=9C=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=EB=AA=A8=EB=8B=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/axios.ts | 5 ++++ src/views/LoginView.vue | 60 +++++++++++-------------------------- src/views/PwChangeEmail.vue | 9 ++---- 3 files changed, 25 insertions(+), 49 deletions(-) diff --git a/src/utils/axios.ts b/src/utils/axios.ts index 38f1b2b..afb3e0f 100644 --- a/src/utils/axios.ts +++ b/src/utils/axios.ts @@ -52,6 +52,11 @@ const setInterceptors = (instance: AxiosInstance) => { if (error.response.data === 'AUTH_003') { Cookies.remove('refreshToken') setError('유효하지 않은 토큰입니다', '다시 로그인 해주세요', redirectToLogin) + } else if (error.response.data === 'AUTH_015') { + setError( + '정지된 계정입니다', + '로그인 시도 5회 초과로 계정이 정지되었습니다\n30분 후 다시 시도해주세요' + ) } break case 403: { diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index 1a1ad98..b9334d4 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -77,49 +77,25 @@ const closeModal = () => { } const handleLogin = async () => { - try { - const name = id.value.toString() - const res = await postLogin(name, password.value) - const role = await memberStore.updateMemberInfoWithToken() + const name = id.value.toString() + const res = await postLogin(name, password.value) + const role = await memberStore.updateMemberInfoWithToken() - if (!Cookies.get('refreshToken')) { - router.push('/pw-change') - } else if (res) { - switch (role) { - case 'ROLE_ADMIN': - router.push('/member-management') - break - case 'ROLE_MANAGER': - router.push('my-task') - break - case 'ROLE_USER': - router.push('/my-request') - break - default: - router.push('/') - } - } - } catch (error) { - if (axios.isAxiosError(error)) { - switch (error.response?.status) { - case 401: - if (error.response?.data == 'AUTH_015') { - messageHeader.value = '정지된 계정입니다' - messageBody.value = - '로그인 시도 5회 초과로 계정이 정지되었습니다\n30분 후 다시 시도해주세요' - } else { - messageHeader.value = '일치하는 정보가 없습니다' - messageBody.value = '아이디와 비밀번호를 다시 확인해주세요' - } - isModalVisible.value = !isModalVisible.value - break - - case 404: - isModalVisible.value = !isModalVisible.value - messageHeader.value = '활성화 되어있지 않은 계정입니다' - messageBody.value = '접근 상태를 다시 확인하여주세요' - break - } + if (!Cookies.get('refreshToken')) { + router.push('/pw-change') + } else if (res) { + switch (role) { + case 'ROLE_ADMIN': + router.push('/member-management') + break + case 'ROLE_MANAGER': + router.push('my-task') + break + case 'ROLE_USER': + router.push('/my-request') + break + default: + router.push('/') } } } diff --git a/src/views/PwChangeEmail.vue b/src/views/PwChangeEmail.vue index 1f77e3b..17c9833 100644 --- a/src/views/PwChangeEmail.vue +++ b/src/views/PwChangeEmail.vue @@ -86,12 +86,7 @@ const closeFailModal = () => { const handleCheck = async () => { const id = email.value.split('@')[0] - try { - await postPasswordEmailSend(name.value, email.value, id) - isModalVisible.value = !isModalVisible.value - } catch { - messageHeader.value = '으에?' - messageBody.value = '으에?' - } + await postPasswordEmailSend(name.value, email.value, id) + isModalVisible.value = !isModalVisible.value } From 49b3db75f5e864d9a0dde542993960e6eba82516 Mon Sep 17 00:00:00 2001 From: jiyeon Date: Fri, 14 Feb 2025 16:01:49 +0900 Subject: [PATCH 3/6] =?UTF-8?q?=F0=9F=90=9B=20=20[fix]=20:=EC=82=AC?= =?UTF-8?q?=EC=A7=84=20=EB=B3=80=EA=B2=BD=20=ED=9B=84=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=20=ED=81=B4=EB=A6=AD=EC=8B=9C=20=EB=A1=9C=EB=94=A9=20=EB=AA=A8?= =?UTF-8?q?=EB=8B=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/EditInformation.vue | 59 ++++++++++++++--------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/src/components/common/EditInformation.vue b/src/components/common/EditInformation.vue index 261037b..2adb99b 100644 --- a/src/components/common/EditInformation.vue +++ b/src/components/common/EditInformation.vue @@ -1,9 +1,9 @@