SuperAPI AI 工具集

better-auth

编程与开发

查看项目

更新于 10-26 16:20

技能介绍

用途

better-auth 是一个 TypeScript 优先的认证库技能包,用于在 TypeScript/JavaScript 应用中实现身份认证。技能描述指定其使用场景为 Next.js 认证实现,但 Better Auth 库本身是框架无关的,资料列出 Next.js、SvelteKit、Nuxt、Remix、Astro、Expo、NestJS 等框架。

主要能力

  • OAuth 提供商(40+):Google、GitHub、Discord、Apple、Microsoft、Slack、Spotify、Twitter/X、Facebook、LinkedIn、GitLab、Bitbucket、Dropbox、Twitch、Reddit、TikTok 等。
  • 插件(20+):双因素认证(TOTP 与备份码)、魔法链接(免密码邮件登录)、Passkey(WebAuthn 生物识别)、Organization(多租户、角色、邀请)、SSO(企业 SAML/OIDC)、SCIM(目录同步与用户开通)、Stripe(订阅计费)、API Key(机器对机器认证)、JWT/Bearer(令牌 API 认证)、Polar 计费等。
  • 数据库适配器:Prisma、Drizzle、MongoDB、原生 SQL(PostgreSQL、MySQL、SQLite)及社区适配器。
  • 其他能力:Web3 登录(Sign-In with Ethereum, SIWE)、电话认证、审计日志,以及从 Auth.js、Clerk、Auth0、Supabase、WorkOS 迁移的指南。

使用方式

资料给出 Next.js 的 SOLID 模块化结构建议:在 modules/auth/ 下组织代码,包括 betterAuth 配置与初始化的 Services、用 createAuthClient 管理客户端认证状态的 Hooks、app/api/auth/[...all]/route.ts API 路由处理器,以及用于路由保护的 proxy.ts(替代 middleware)。

版本说明:当前稳定版为 1.7.x。1.5 起提供独立 CLI npx auth@latest(generate、migrate、secret、init、check 等),新增 OAuth 2.1 Provider(@better-auth/oauth-provider);1.6 起 session.freshAge 由 createdAt 计算,oidcProvider 被弃用;1.7 移除 oidcProvider,通用 OAuth 提供商改用 signIn.social(不再有 genericOAuthClient),数据库 join 通过 advanced.database.joins,accounts 以 (issuer, accountId) 为键,twoFactor.enable 返回按方法区分的响应,MCP 迁移至 @better-auth/mcp,SCIM 与 organization 解耦。升级到 1.7 后需重新生成 schema(npx auth@latest generate)并遵循官方升级指南。

资料还描述了一套必须执行的代理工作流:实现前并行启动三个代理分别分析现有认证设置、通过 Context7/Exa 核对最新文档、检查提供商/插件可用性;实现后运行校验代理。

适用场景

需要在 TypeScript/JavaScript 应用中添加 OAuth 登录、双因素认证、魔法链接、Passkey、电话认证、企业 SSO/SAML、SCIM 用户开通、组织多租户、Stripe/Polar 订阅计费、Web3 登录,或从其他认证服务迁移时适用。

限制与注意事项

该技能的架构指导(proxy.ts、App Router API 路由)仅针对 Next.js;Prisma schema 与查询细节需参阅 prisma-7 文档。资料未提供托管服务、价格、性能数据或具体平台限制,这些事实暂未提供。建议遵循的实践包括:按需启用插件、使用服务端配置生成的类型安全客户端、开启会话缓存、为认证端点配置限流、使用 secure/httpOnly/sameSite Cookie、为用户查询字段添加数据库索引。