/** * 认证页面 - 登录/注册 */ 'use client'; import { useState } from 'react'; import { useAuth } from '@/lib/hooks'; import { useRouter } from 'next/navigation'; export default function AuthPage() { const [isLogin, setIsLogin] = useState(true); const [email, setEmail] = useState(''); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const { login, register, isLoading } = useAuth(); const router = useRouter(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); try { console.log('[Auth] Submitting:', { isLogin, email }); if (isLogin) { const response = await login(email, password); console.log('[Auth] Login response:', response); } else { const response = await register(email, username, password); console.log('[Auth] Register response:', response); } console.log('[Auth] Redirecting to home...'); router.push('/'); } catch (err) { console.error('[Auth] Error:', err); setError(err instanceof Error ? err.message : '操作失败'); } }; return (

{isLogin ? '登录' : '注册'} Novel Platform

{error && (
{error}
)}
setEmail(e.target.value)} required className="w-full px-3 py-2 border dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white" />
{!isLogin && (
setUsername(e.target.value)} required className="w-full px-3 py-2 border dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white" />
)}
setPassword(e.target.value)} required className="w-full px-3 py-2 border dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white" />
); }