login-form.md
基本信息
- 类型: React 组件
- 路径:
./src/components/auth/login-form.tsx
功能描述
邮箱密码登录表单组件,使用 React Hook Form 和 Zod 进行表单验证。提交后通过 NextAuth 的 credentials 提供者进行认证。
导出内容
LoginForm- 主组件函数loginSchema- Zod 验证模式LoginFormValues- 表单值类型
Props
无
表单字段
| 字段 | 验证规则 | 说明 |
|---|---|---|
| 必须为有效邮箱格式 | 用户邮箱地址 | |
| password | 最少 6 个字符 | 用户密码 |
验证模式
const loginSchema = z.object({
email: z.string().email("Invalid email address"),
password: z.string().min(6, "Password must be at least 6 characters"),
});
type LoginFormValues = z.infer<typeof loginSchema>;
功能流程
- 用户输入邮箱和密码
- Zod 验证表单数据
- 调用
signIn("credentials")进行认证 - 成功后跳转到首页
- 失败时显示错误提示
依赖
react- useStatenext/navigation- useRouternext-auth/react- signInnext-intl- useTranslationsreact-hook-form- useForm@hookform/resolvers/zod- zodResolverzod- 数据验证@/components/ui/*- Button, Input, Formlucide-react- Loader2sonner- toast 通知@/lib/analytics- analyticsAuth