SuperAPI AI 工具集

better-auth

编程与开发

查看项目

更新于 10-15 21:41

技能介绍

用途:Better Auth 是一个与框架无关的 TypeScript 认证与授权库,用于为应用提供登录、会话管理与权限控制。采用插件化架构,支持 40+ OAuth 提供商与 18+ 框架集成。

主要能力:内置邮箱/密码与社交 OAuth;通过插件支持魔法链接、Passkey(WebAuthn/FIDO2)、用户名、邮箱 OTP、手机号、匿名登录、双因素(TOTP/OTP/备份码)、组织与 RBAC、管理员、API Key、Bearer、JWT、多会话,以及作为 OAuth/OIDC 提供商、SAML/OIDC 企业 SSO、Stripe 支付、Expo 等。数据库适配器覆盖 SQLite、PostgreSQL、MySQL、Prisma、Drizzle、MongoDB,也可用连接字符串走内置 Kysely。

使用方式:安装 npm install better-auth;按需安装 @better-auth/passkey、@better-auth/sso、@better-auth/stripe、@better-auth/expo 等作用域包。配置环境变量 BETTER_AUTH_SECRET(32+ 字符,可用 openssl rand -base64 32 生成)、BETTER_AUTH_URL、DATABASE_URL。服务端在 lib/auth.ts 用 betterAuth({...}) 创建实例,客户端用 createAuthClient(/react、/vue、/svelte、/solid、/client)。路由处理器按框架选择,如 Next.js App Router 用 toNextJsHandler(auth),Express 用 toNodeHandler(auth),Hono 用 auth.handler(c.req.raw)。CLI 命令:npx @better-auth/cli@latest migrate 应用内置适配器 schema;npx @better-auth/cli@latest generate 为 Prisma/Drizzle 生成,可加 --output。新增或修改插件后需重新运行 CLI。

适用场景:需要统一认证层的 TypeScript 全栈项目、多框架前端、多租户组织、企业 SSO、无密码登录与双因素等。

限制与注意:配置使用 ORM 模型名而非数据库表名;使用 secondaryStorage 时会话默认存于其中而非数据库,需设 session.storeSessionInDatabase: true 才同时持久化;cookie 缓存不缓存自定义会话字段;回调 URL 必须使用带 origin 的绝对地址;Express v5 通配路由用 "/api/auth/*splat";Next.js RSC 需加 nextCookies() 插件。生产环境应使用 HTTPS baseURL、配置 trustedOrigins、启用速率限制,并避免提交密钥。具体收费、价格与效果资料暂未提供。