0.2 在线版本打通

This commit is contained in:
liaibo
2026-01-15 20:54:21 +08:00
parent 725a60d3aa
commit 94957dc361
1596 changed files with 153254 additions and 309 deletions
+33 -6
View File
@@ -2,7 +2,7 @@
import { useCallback, useState } from "react";
import { useRouter } from "next/navigation";
import { supabaseBrowser } from "@/lib/supabase/client";
import { getSupabaseBrowserClient } from "@/lib/supabase/client";
import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
@@ -19,22 +19,49 @@ export default function LoginPage() {
const handleLogin = useCallback(async () => {
setLoading(true);
setMessage("");
const { data, error } = await supabaseBrowser.auth.signInWithPassword({
email,
password,
});
const supabaseBrowser = getSupabaseBrowserClient();
let data: unknown = null;
let error: { message?: string } | null = null;
try {
const result = await supabaseBrowser.auth.signInWithPassword({
email,
password,
});
data = result.data;
error = result.error as unknown as { message?: string } | null;
} catch (err) {
const runtimeCfg = (() => {
try {
return (window as unknown as { __MNOTE_RUNTIME_CONFIG__?: { supabaseUrl?: string } }).__MNOTE_RUNTIME_CONFIG__;
} catch {
return undefined;
}
})();
const supabaseUrlHint = runtimeCfg?.supabaseUrl ? `Supabase${runtimeCfg.supabaseUrl}` : "";
setLoading(false);
setMessage(`登录失败:网络或证书异常 ${supabaseUrlHint}\n${String(err)}`);
return;
}
setLoading(false);
if (error) {
setMessage(`登录失败:${error.message}`);
return;
}
setMessage("登录成功,准备跳转...");
setSessionInfo(JSON.stringify(data.session, null, 2));
const session = (data as { session?: unknown } | null)?.session ?? null;
setSessionInfo(JSON.stringify(session, null, 2));
// 说明:曾出现“需要二次登录”的现象(服务端仍读到旧 cookie/session)。
// 这里用整页跳转强制刷新,确保 App Router 的服务端组件读取到最新会话。
if (typeof window !== "undefined") {
window.location.href = "/";
return;
}
router.replace("/");
}, [email, password, router]);
const handleGetSession = useCallback(async () => {
setLoading(true);
const supabaseBrowser = getSupabaseBrowserClient();
const {
data: { session },
error,