'use client'; import { useState, FormEvent, useEffect } from 'react'; import { useRouter, useSearchParams } from 'next/navigation'; import Link from 'next/link'; import { useAuth } from '@/lib/auth'; import supabase from '@/lib/supabase'; export default function LoginPage() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(null); const [isLoading, setIsLoading] = useState(false); const [message, setMessage] = useState(null); const [serverInfo, setServerInfo] = useState(null); const router = useRouter(); const searchParams = useSearchParams(); const { signIn, signInWithGoogle, user, autoRegisterTestUser } = useAuth(); // 从URL参数中获取消息 useEffect(() => { const message = searchParams.get('message'); if (message) { setMessage(message); } // 如果用户已登录,跳转到dashboard if (user) { router.push('/dashboard'); } // 检查服务器状态 const checkServerStatus = async () => { try { const { data, error } = await supabase.auth.getSession(); if (error) { console.log('Session check error:', error); setServerInfo(`服务器连接状态: 错误 (${error.message})`); } else { console.log('Session check success:', data); setServerInfo('服务器连接状态: 正常'); } } catch (error) { console.error('Server check error:', error); setServerInfo('服务器连接状态: 无法连接'); } }; checkServerStatus(); }, [searchParams, user, router]); // 处理登录表单提交 const handleSubmit = async (e: FormEvent) => { e.preventDefault(); setError(null); setIsLoading(true); try { console.log('Attempting to sign in with:', { email, password }); await signIn(email, password); // 登录成功后会自动跳转到dashboard } catch (error: unknown) { console.error('Login error:', error); // 显示更详细的错误信息 if (error instanceof Error) { setError(`登录失败: ${error.message}`); } else { setError('登录失败,请检查邮箱和密码是否正确'); } } finally { setIsLoading(false); } }; // 处理Google登录 const handleGoogleSignIn = async () => { setError(null); try { await signInWithGoogle(); // 登录流程会重定向到Google,然后回到应用 } catch (error: unknown) { console.error('Google sign in error:', error); if (error instanceof Error) { setError(`Google登录失败: ${error.message}`); } else { setError('Google登录失败,请稍后再试'); } } }; // 使用测试账户 const handleUseTestAccount = async () => { setError(null); setIsLoading(true); try { // 使用AuthContext中的自动注册测试账户功能 await autoRegisterTestUser(); } catch (error) { console.error('测试账户处理错误:', error); setError(error instanceof Error ? error.message : '测试账户创建失败'); } finally { setIsLoading(false); } }; return (

登录

登录您的账户以访问分析面板

{serverInfo && (
{serverInfo}
)}
{/* 消息提示 */} {message && (
{message}
)} {/* 错误提示 */} {error && (
{error}
)}
setEmail(e.target.value)} className="mt-1 block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 dark:bg-gray-700 dark:text-white focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="your@email.com" />
setPassword(e.target.value)} className="mt-1 block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 dark:bg-gray-700 dark:text-white focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="********" />

还没有账号?{' '} 立即注册

); }