From 1c49ceb6f63d6174d0d664fb2893f63d9e802dbf Mon Sep 17 00:00:00 2001 From: jschoi Date: Tue, 5 Aug 2025 17:39:42 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20user,project=20api=20=EB=B6=88=EB=9F=AC?= =?UTF-8?q?=EC=98=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/DrawerComponent.vue | 14 +- src/components/common/LayoutComponent.vue | 25 +- src/components/models/management/User.ts | 27 ++ src/components/models/project/Project.ts | 23 ++ src/components/service/index.ts | 131 ++++++++++ .../service/management/userManagerService.ts | 27 ++ .../service/project/projectService.ts | 13 + src/pages/LoginView.vue | 92 ++++--- src/pages/SignupView.vue | 210 ++++++++++++++++ src/router/index.js | 16 +- src/views/Select.vue | 232 +++++++++++++++--- 11 files changed, 734 insertions(+), 76 deletions(-) create mode 100644 src/components/models/management/User.ts create mode 100644 src/components/models/project/Project.ts create mode 100644 src/components/service/index.ts create mode 100644 src/components/service/management/userManagerService.ts create mode 100644 src/components/service/project/projectService.ts create mode 100644 src/pages/SignupView.vue diff --git a/src/components/common/DrawerComponent.vue b/src/components/common/DrawerComponent.vue index f2d6904..5bd6a79 100644 --- a/src/components/common/DrawerComponent.vue +++ b/src/components/common/DrawerComponent.vue @@ -21,8 +21,7 @@ const goMain = () => { onMounted(() => { isShowAuth.value = true; - //storage.getAuth().auth === "ADMIN"; - + //storage.getAuth().auth === "ADMIN"; }); @@ -35,9 +34,10 @@ onMounted(() => { @click="goMain" >
- -
Autoflow Web Console
- + +
+ Autoflow Web Console +
@@ -137,6 +137,4 @@ onMounted(() => { - + diff --git a/src/components/common/LayoutComponent.vue b/src/components/common/LayoutComponent.vue index bf5d0b7..8529562 100644 --- a/src/components/common/LayoutComponent.vue +++ b/src/components/common/LayoutComponent.vue @@ -4,7 +4,7 @@ import { storage } from "@/utils/storage.js"; import DrawerComponent from "@/components/common/DrawerComponent.vue"; import { watchEffect } from "vue"; import Select from "@/views/Select.vue"; - +import { UserManagerService } from "@/components/service/management/userManagerService"; const route = useRoute(); const router = useRouter(); @@ -62,10 +62,19 @@ const goSelect = () => { }; const logOut = () => { - storage.clearAuth(); - router.push("/signin"); + // 1) 서버에 로그아웃 API 호출 + UserManagerService.signOut() + .catch((err) => { + // 403 Forbidden 이든 네트워크 에러든, + // 일단 콘솔에 찍어 보고 + console.error("logout API failed:", err); + }) + .finally(() => { + // 2) 로컬 토큰 삭제 & 로그인 페이지 이동 + storage.clearAuth(); + router.push("/login"); + }); }; - const goHome = () => { router.push("/main"); }; @@ -85,7 +94,13 @@ watchEffect(() => {