用途:better-auth 是自托管的 TypeScript 认证框架,用于为应用提供账户登录、会话管理与扩展认证能力。
主要能力:支持邮箱密码登录、社交登录、2FA(TOTP、邮件 OTP、备用码)、Passkey/WebAuthn、Magic Link、JWT、OAuth 2.1 Provider、SSO、SCIM、Stripe 订阅、API Key、Bearer Token、匿名访问、邮箱/短信 OTP、用户名登录、多会话等插件;提供组织、团队、邀请与 RBAC 管理。数据库适配器包括 Drizzle、Kysely、Prisma;会话策略有 Compact(Base64url + HMAC-SHA256)、JWT、JWE。
使用方式:需配置 BETTER_AUTH_SECRET(至少 32 字符,可用 openssl rand -base64 32 生成)与 BETTER_AUTH_URL。仅在未设置环境变量时,才在配置中定义 baseURL 或 secret。CLI 会在 ./、./lib、./utils 或 ./src 查找 auth.ts。新项目可用官方交互式初始化:npx skills add better-auth/skills -s create-auth-skill;修改插件后运行 npx @better-auth/cli@latest generate 更新数据库结构。
限制与注意事项:v1.4.0 起仅支持 ESM,禁止使用 CommonJS require;Cloudflare D1 不要直接用 d1Adapter,应使用 Drizzle 或 Kysely 适配器并设置 provider: "sqlite";Cloudflare Workers 需在 wrangler.toml 配置 nodejs_compat;判断登录状态应检查 session?.user,而非 session 对象本身;TanStack Start 中 tanstackStartCookies() 必须位于插件数组最后。其他版本变更、框架集成与故障排查以官方文档为准。