From 436d58be52c9ddb1ab6e9ecd90508138ba5d5204 Mon Sep 17 00:00:00 2001 From: goddonebianu Date: Mon, 9 Mar 2026 19:52:41 +0800 Subject: [PATCH] =?UTF-8?q?fix(auth):=20=E4=BF=AE=E5=A4=8D=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=B3=A8=E5=86=8C=E5=A4=B1=E8=B4=A5=E6=97=A0=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E7=A4=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit better-auth 客户端不抛出异常,而是返回 { data, error } 对象 修改错误处理逻辑检查 error 对象而非 try-catch --- src/app/(auth)/login/page.tsx | 14 ++++++++++---- src/app/(auth)/signup/page.tsx | 8 +++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/app/(auth)/login/page.tsx b/src/app/(auth)/login/page.tsx index 5adcba2..aa9a4b4 100644 --- a/src/app/(auth)/login/page.tsx +++ b/src/app/(auth)/login/page.tsx @@ -38,19 +38,25 @@ export default function LoginPage() { setLoading(true); try { if (username.includes("@")) { - await authClient.signIn.email({ + const { error } = await authClient.signIn.email({ email: username, password: password, }); + if (error) { + toast.error(error.message ?? t("loginFailed")); + return; + } } else { - await authClient.signIn.username({ + const { error } = await authClient.signIn.username({ username: username, password: password, }); + if (error) { + toast.error(error.message ?? t("loginFailed")); + return; + } } router.push(redirectTo ?? "/folders"); - } catch (error) { - toast.error(t("loginFailed")); } finally { setLoading(false); } diff --git a/src/app/(auth)/signup/page.tsx b/src/app/(auth)/signup/page.tsx index 4e29624..9f0f470 100644 --- a/src/app/(auth)/signup/page.tsx +++ b/src/app/(auth)/signup/page.tsx @@ -39,15 +39,17 @@ export default function SignUpPage() { setLoading(true); try { - await authClient.signUp.email({ + const { error } = await authClient.signUp.email({ email: email, name: username, username: username, password: password, }); + if (error) { + toast.error(error.message ?? t("signUpFailed")); + return; + } router.push(redirectTo ?? "/folders"); - } catch (error) { - toast.error(t("signUpFailed")); } finally { setLoading(false); }