"use client"; import { useCallback, useState } from "react"; import { useRouter } from "next/navigation"; import { supabaseBrowser } 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"; import { Separator } from "@/components/ui/separator"; export default function LoginPage() { const router = useRouter(); const [email, setEmail] = useState("test@163.com"); const [password, setPassword] = useState("123456"); const [loading, setLoading] = useState(false); const [message, setMessage] = useState(""); const [sessionInfo, setSessionInfo] = useState(""); const handleLogin = useCallback(async () => { setLoading(true); setMessage(""); const { data, error } = await supabaseBrowser.auth.signInWithPassword({ email, password, }); setLoading(false); if (error) { setMessage(`登录失败:${error.message}`); return; } setMessage("登录成功,准备跳转..."); setSessionInfo(JSON.stringify(data.session, null, 2)); router.replace("/"); }, [email, password, router]); const handleGetSession = useCallback(async () => { setLoading(true); const { data: { session }, error, } = await supabaseBrowser.auth.getSession(); setLoading(false); if (error) { setMessage(`获取会话失败:${error.message}`); return; } if (!session) { setMessage("当前未登录"); setSessionInfo(""); return; } setMessage("发现有效 Session"); setSessionInfo(JSON.stringify(session, null, 2)); }, []); return (
Supabase 登录

测试账号:test@163.com / 123456

setEmail(e.target.value)} />
setPassword(e.target.value)} />
{message &&

{message}

} {sessionInfo && (
              {sessionInfo}
            
)}
); }