diff --git a/frontend/components/auth/LoginClient.tsx b/frontend/components/auth/LoginClient.tsx
index edd004af..4f2d69e5 100644
--- a/frontend/components/auth/LoginClient.tsx
+++ b/frontend/components/auth/LoginClient.tsx
@@ -40,6 +40,18 @@ export function LoginClient({ nextPath }: LoginClientProps) {
const [resetSent, setResetSent] = useState(false);
const [showPassword, setShowPassword] = useState(false);
+ useEffect(() => {
+ if (typeof window !== "undefined") {
+ const params = new URLSearchParams(window.location.search);
+ const m = params.get("mode");
+ if (m === "signup") {
+ setMode("signup");
+ } else if (m === "login") {
+ setMode("login");
+ }
+ }
+ }, []);
+
const supabaseReady = hasSupabasePublicEnv();
const isLogin = mode === "login";
const siteOrigin =
diff --git a/frontend/components/landing/InstitutionalLandingPage.tsx b/frontend/components/landing/InstitutionalLandingPage.tsx
index f0a17414..cc578ccd 100644
--- a/frontend/components/landing/InstitutionalLandingPage.tsx
+++ b/frontend/components/landing/InstitutionalLandingPage.tsx
@@ -153,6 +153,12 @@ function InstitutionalLandingScreen() {
>
{isEn ? "Log in" : "登录"}
+
+ {isEn ? "Sign Up" : "注册"}
+