SuperAPI AI 工具集

better-auth

编程与开发

查看项目

更新于 10-15 23:31

技能介绍

用途:better-auth 是自托管认证库,面向 TypeScript 与 Cloudflare Workers,提供社交登录、双因素认证(2FA)、Passkeys、组织管理、RBAC 以及 15 个以上插件。

主要能力:支持邮箱密码、社交 OAuth(Google、GitHub、Microsoft、Discord、Apple、Patreon、Kick、Vercel 等)、OAuth 2.1 Provider、SSO(OIDC/OAuth2/SAML 2.0)、Stripe 订阅、SCIM 用户供给、匿名访客、用户名登录、多会话、API Key、Bearer Token、Google One Tap 等插件。v1.4.0 起为 ESM-only,支持无状态会话、JWT 密钥轮换、Cookie 会话缓存(compact/jwt/jwe)与内置限流。

使用方式:在 Cloudflare Workers 上,D1 绑定仅在请求处理函数内可用,需用工厂函数按请求创建实例,例如在 fetch(request, env, ctx) 内执行 const db = drizzle(env.DB, { schema }),再 betterAuth({ database: drizzleAdapter(db, { provider: "sqlite" }) })。D1 没有 d1Adapter(),必须用 Drizzle ORM(推荐)或 Kysely + D1Dialect;若 Drizzle schema 使用 snake_case,Kysely 需加 CamelCasePlugin。TanStack Start 需加 reactStartCookies 插件且必须放在插件数组最后;useSession() 返回的 session 对象始终存在,未登录时 session.user 与 session.session 为 null,应检查 session?.user。

适用场景:边缘/无服务器应用、需要自托管认证的 TypeScript 项目、企业 SSO 与用户供给、API 令牌认证、多租户组织与权限控制。

限制:D1 无直接适配器;无状态会话无法撤销且 Cookie 约 4KB 上限;OAuth 2.1 Provider 插件仍在开发中,可能尚不适合生产;服务端 auth.api.* 调用绕过限流;多实例需一致的 BETTER_AUTH_SECRET。具体收费与价格暂未提供。