用途:在 TypeScript/Next.js 项目中实现基于 Better Auth 的认证,覆盖会话策略、登录提供商、Cookie、CSRF、重定向与中间件等环节,官方建议以 better-auth.com/docs 为准。
主要能力:Better Auth 是 TypeScript 优先、与框架无关的认证框架,支持邮箱密码、OAuth、魔法链接、通行密钥等,通过插件扩展。配置包含数据库适配器、secondaryStorage、emailAndPassword、socialProviders、plugins、trustedOrigins 等。会话可存于 secondaryStorage 或数据库;无数据库配合 cookieCache 可完全无状态。Cookie 缓存策略有 compact、jwt、jwe。注册需 email 与 name 字段。
必要用法:环境变量 BETTER_AUTH_SECRET(至少 32 字符,可用 openssl rand -base64 32 生成)与 BETTER_AUTH_URL;仅在未设置环境变量时才在配置中写 baseURL/secret。CLI 默认在 ./、./lib、./utils 或 ./src 下查找 auth.ts。常用命令:npx @better-auth/cli@latest migrate、npx @better-auth/cli@latest generate、npx @better-auth/cli mcp --cursor,新增或修改插件后需重新执行。插件从 dedicated 路径导入以便 tree-shaking,如 import { twoFactor } from "better-auth/plugins/two-factor"。客户端可从 better-auth/client、better-auth/react、better-auth/vue、better-auth/svelte、better-auth/solid 导入,方法包括 signUp.email()、signIn.email()、signIn.social()、signOut()、useSession()、getSession()、revokeSession()、revokeSessions()。
限制与注意:适配器模型名指 ORM 模型名而非数据库表名;session 的 storeSessionInDatabase、cookieCache 版本变更可失效全部会话;自定义会话字段不进入 cookie 缓存,需每次重新获取;部分 advanced 选项如 disableCSRFCheck、disableOriginCheck 存在安全风险;限流依赖 rateLimit.enabled 等配置。文档未提供具体收费或平台信息。