[로그인 기능 개선] 로그인 처리 로직 간소화 및 에러 메시지 개선, 로그아웃 기능 리팩토링

This commit is contained in:
2025-09-22 14:22:28 +09:00
parent 8282a4d037
commit 9bbc4f82b6
2 changed files with 22 additions and 52 deletions

View File

@@ -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;
}
</script>

View File

@@ -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<LoginData>
>("/login", {
method: "post",
body: { userId, password },
});
const { success, data } = await useApi<ApiResponse<LoginData>>(
"/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 = () => {