SuperAPI AI 工具集

better-auth-best-practices

编程与开发

查看项目

更新于 10-16 00:04

技能介绍

用途:指导在项目中集成 Better Auth,这是一个 TypeScript 优先、框架无关的认证框架,支持邮箱密码、OAuth、魔法链接、通行密钥等,通过插件扩展功能。使用前应查阅 better-auth.com/docs 获取最新 API 与代码示例。

环境变量:BETTER_AUTH_SECRET 为加密密钥(至少 32 字符,可用 openssl rand -base64 32 生成),BETTER_AUTH_URL 为基地址。仅在环境变量未设置时才在配置中定义 baseURL/secret。

CLI 与文件位置:CLI 在 ./、./lib、./utils 或 ./src 下查找 auth.ts,可用 --config 指定路径。命令:npx @better-auth/cli@latest migrate 应用内置适配器模式;npx @better-auth/cli@latest generate 为 Prisma/Drizzle 生成模式;npx @better-auth/cli mcp --cursor 为 AI 工具添加 MCP。新增或修改插件后需重新运行。

核心配置:包括 appName、baseURL、basePath(默认 /api/auth)、secret、database(多数功能必需)、secondaryStorage(Redis/KV 存会话与限流)、emailAndPassword、socialProviders、plugins、trustedOrigins 等。数据库可直接传连接池,或使用 better-auth/adapters/drizzle、prisma、mongodb。注意配置使用适配器模型名而非底层表名。

会话:定义 secondaryStorage 时会话默认存那里,可用 session.storeSessionInDatabase: true 同时落库;无数据库配合 cookieCache 为完全无状态模式。cookie 缓存策略有 compact、jwt、jwe。关键选项含 session.expiresIn、updateAge、cookieCache.maxAge 与 version。

邮件流程:emailVerification.sendVerificationEmail 必须定义才能生效,可配置 sendOnSignUp/sendOnSignIn,密码重置用 emailAndPassword.sendResetPassword。

安全:advanced 下可设 useSecureCookies、disableCSRFCheck、disableOriginCheck(后两者有风险)、crossSubDomainCookies、ipAddressHeaders、generateId。限流由 rateLimit.enabled、window、max、storage 控制。

插件:应从独立路径导入以利于 tree-shaking,如 import { twoFactor } from "better-auth/plugins/two-factor",客户端插件放入 createAuthClient。客户端可从 better-auth/client、react、vue、svelte、solid 导入,方法含 signUp.email、signIn.email、signIn.social、signOut、useSession 等。类型可用 typeof auth.$Infer.Session 推断。

限制:资料为集成要点,未提供具体版本、价格与完整示例;模型名与表名、插件模式重跑、secondaryStorage 会话位置、cookie 缓存不缓存自定义会话字段等为常见易错点,需以官方文档为准。