为什么需要
做海外 SaaS 产品,认证是绕不开的第一关。Google 登录、GitHub OAuth、邮箱验证、两步验证——每一样都要写,每一样都有坑。TypeScript 生态里现有的方案要么太轻(只做 OAuth,其他自己写),要么太重(Clerk/Auth0 绑定付费)。Better Auth 的定位就是:开源、免费、功能全覆盖、框架无关。
怎么用
- 安装:
npm install better-auth - 配置数据库连接(支持 PostgreSQL、MySQL、SQLite、MongoDB)
- 初始化 Better Auth 实例,配置需要的 provider(Google、GitHub、Discord 等)
- 在你的框架里挂载路由(Next.js、Nuxt、SvelteKit、Express、Hono 等都有适配)
- 前端用官方 SDK 调用
signIn.social()一行代码完成登录
typescript
import { betterAuth } from "better-auth";
const auth = betterAuth({
database: new Pool({ connectionString: process.env.DATABASE_URL }),
socialProviders: {
github: { clientId: "...", clientSecret: "..." },
google: { clientId: "...", clientSecret: "..." },
},
});
插件生态
Better Auth 的核心优势在插件系统:
- two-factor:TOTP/短信验证码,2 行代码启用
- multi-tenant:多租户支持,SaaS 必备
- organization:团队/组织管理
- magic-link:魔法链接登录
- passkey:WebAuthn 无密码登录
- stripe:Stripe 订阅集成
- admin:用户管理后台
每个插件都是独立安装,不用的功能不打包。
注意事项
- 免费开源(MIT),无用户数限制
- 需要自己管理数据库(不像 Clerk/Auth0 托管)
- 文档质量高,但部分高级用法还在完善
- 社区活跃,GitHub Issues 响应快