用途:面向使用 Better Auth 的项目,指导配置邮箱/密码登录、邮箱验证、密码重置、密码长度策略与密码哈希算法。
主要能力与用法:
- 启用邮箱/密码:设置 emailAndPassword.enabled 为 true。
- 邮箱验证:配置 emailVerification.sendVerificationEmail 发送验证邮件;开启 emailAndPassword.requireEmailVerification 可在验证前阻止登录,此时每次登录尝试都会重发验证邮件,且仅适用于邮箱/密码登录。
- 密码重置:在 emailAndPassword 中提供 sendResetPassword,可选 onPasswordReset 钩子;调用 auth.api.requestPasswordReset 或 authClient.requestPasswordReset 发送重置链接,email 必填,建议配置 redirectTo。
- 密码策略:通过 minPasswordLength(示例 12)与 maxPasswordLength(示例 256)设置长度限制。
- Token 安全:令牌默认 1 小时过期,可用 resetPasswordTokenExpiresIn(秒)调整,如 60 * 30;令牌为一次性,重置成功后立即删除。
- 会话撤销:开启 revokeSessionsOnPasswordReset 可在重置密码时使所有现有会话失效。
- 哈希算法:默认 scrypt;可自定义 password.hash 与 password.verify,例如使用 @node-rs/argon2 的 Argon2id。注意切换算法会导致旧密码用户无法登录,需规划迁移。
- 安全机制:内置后台发送邮件、无效请求的占位操作、恒定响应消息;在 Serverless 平台需配置 advanced.backgroundTasks.handler。
- 回调 URL:注册/登录的 callbackURL 应使用含 origin 的绝对 URL。
- 迁移:运行 npx @better-auth/cli@latest migrate。验证:尝试注册并确认触发验证邮件。
限制:资料未提供价格、平台兼容性清单与具体效果数据。