diff --git a/pages/login.vue b/pages/login.vue index fdcddd3..a99f95d 100644 --- a/pages/login.vue +++ b/pages/login.vue @@ -86,21 +86,14 @@ async function signIn() { isLoading.value = true; errorMessage.value = ""; - try { - const result = await userStore.login(userId.value, password.value); + const result = await userStore.login(userId.value, password.value); - if (result.success) { - // 로그인 성공 시 홈으로 이동 - await router.push("/"); - } else { - errorMessage.value = result.error || "로그인에 실패했습니다."; - } - } catch (error) { - errorMessage.value = "로그인 중 오류가 발생했습니다."; - console.error("로그인 오류:", error); - } finally { - isLoading.value = false; + if (result.success) { + await router.push("/"); + } else { + errorMessage.value = result.error; } + isLoading.value = false; } diff --git a/stores/user.ts b/stores/user.ts index 3e9ff39..d5d91f1 100644 --- a/stores/user.ts +++ b/stores/user.ts @@ -16,53 +16,30 @@ export const useUserStore = defineStore( userId: string; name: string; } - // 액션 const login = async (userId: string, password: string) => { - try { - // 실제 API 호출로 대체할 수 있습니다 + const { success, data, description } = await useApi< + ApiResponse + >("/login", { + method: "post", + body: { userId, password }, + }); - const { success, data } = await useApi>( - "/login", - { - method: "post", - body: { userId, password }, - } - ); - - if (success) { - user.value = data; - isLoggedIn.value = true; - } else { - throw new Error("아이디 또는 비밀번호가 올바르지 않습니다."); - } - - return { success }; - } catch (error: any) { - console.log(error); + if (success) { + user.value = data; + isLoggedIn.value = true; + return { success, data }; + } else { return { success: false, - error: - error?.response?.status === 401 - ? "아이디 또는 비밀번호가 올바르지 않습니다." - : error instanceof Error - ? error.message - : "로그인에 실패했습니다.", + error: description, }; } }; - const logout = async () => { - try { - await useApi("/members/logout", { - method: "post", - }); - } catch (error) { - console.error("로그아웃 요청 실패:", error); - } finally { - // 로컬 상태 정리 - user.value = null; - isLoggedIn.value = false; - } + const logout = () => { + user.value = null; + isLoggedIn.value = false; + useApi("/members/logout", { method: "post" }); }; const checkAuth = () => {