llms.txt 完整文档索引请参见 llms.txt
工具
xiaohui
收录

Better Auth | TypeScript 最全面的认证框架

Better Auth 是一款 TypeScript 原生的认证框架,框架无关、插件驱动,内置邮箱密码、社交 OAuth、2FA、Passkey、多租户等 30+ 认证能力,MIT 开源,GitHub 29K Star,npm 月下载量 1900 万。

Better Auth — 官网首页。

Better Auth 官网首页

Better Auth 是一款 TypeScript 原生的认证与授权框架,由社区驱动的开源项目(MIT 协议),GitHub 获 29K+ Star、890+ 贡献者,npm 月下载量超过 1900 万次。它的核心定位是「框架无关」——不绑定特定前端框架或 ORM,可无缝接入 Next.js、Nuxt、SvelteKit、Hono、Elysia 等生态。

什么场景需要它

TypeScript 生态中的认证方案长期处于「半解决」状态。Auth.js(原 NextAuth)需要较多胶水代码做自定义;Lucia v3 已转型为架构指南而非可依赖的库;Clerk 等功能完善但依赖 SaaS 服务,数据归厂商管。Better Auth 希望填补这个空白——既有开箱即用的功能密度,又保持数据自托管。

核心能力

开箱即用的认证方式

认证方式支持情况
邮箱密码✅ 内置,含 Argon2 密码哈希
社交 OAuth✅ Google、GitHub、Apple 等 20+ 提供商
Magic Link✅ 免密登录
手机验证码
Passkey✅ WebAuthn 标准
两步验证(2FA)✅ TOTP,可选强制策略
单点登录(SSO)✅ SAML/OIDC,Enterprise 插件

高级功能(插件生态)

Better Auth 采用插件架构,核心只提供基础能力,进阶功能通过官方和社区插件按需加载:

  • 多租户组织 — Organization 插件,含角色管理、成员邀请、权限控制
  • 多会话管理 — 多设备独立会话,强制踢出
  • API Keys — 服务端 API Key 鉴权
  • 用户名 — 非邮箱的用户名登录
  • 邮件模板 — 自定义认证邮件模板
  • OAuth 2.0 服务端 — 把自己打造成 OAuth 服务端(IDP)
  • 管理员后台 — 用户管理仪表盘
  • Last Login Method — 记录最近登录方式
  • MCP 集成 — AI 工具可调用 Auth 数据查询

数据库与 ORM 支持

ORM支持
Prisma✅ 官方适配
Drizzle✅ 官方适配
Mongoose✅ 官方适配
Kysely✅ 社区适配
自定义 SQL✅ 可通过 adapter 扩展

为什么值得关注

Better Auth 在 2025-2026 年成为 TypeScript 认证领域增长最快的开源项目,主要有几个原因:

  1. Lucia v3 的退出 — 2025 年 Lucia 官方宣布 v3 不再作为可依赖的认证库,大量用户迁移到 Better Auth
  2. Auth.js 的复杂度 — Auth.js v5 在灵活性和易用性之间摇摆,Better Auth 的 API 设计更符合直觉
  3. 插件架构而非全栈 SaaS — 核心免费开源,按需装插件,不锁定厂商
  4. TypeScript 优先 — 完整的类型推导,开发体验接近零摩擦

社区评价中常拿「Clerk 的反面」来形容 Better Auth——如果你不想把用户数据交给第三方,又不想自己从零造轮子,Better Auth 是目前最完整的选择。

定价模型

Better Auth 本身是 MIT 协议的开源项目,核心认证能力免费。项目方同时提供两个付费方向:

方案费用涵盖
开源版免费核心认证 + 所有基础插件,自部署
Better Auth Cloud$49/月起仪表盘、审计日志、安全检测、邮件服务、异常检测
Enterprise定制SSO/SAML、SCIM、自定义 IDP、专属支持

Cloud 层是可选的——你可以永远不碰它,纯用开源版跑业务。

适合谁

  • TypeScript 全栈开发者:想用一个库解决所有认证需求,不想拼凑多个方案
  • 从 NextAuth/Auth.js 迁移的团队:想降低自定义认证逻辑的技术债
  • 数据主权敏感的 SaaS:需要认证功能完整,但不愿把用户数据交给第三方
  • 多产品线团队:框架无关的设计让同一套认证逻辑跨 Next.js、Nuxt、Hono 复用

不太适合

  • 完全不想碰代码:Better Auth 不是 SaaS——需要写代码集成。如果你想要零代码拖拽式认证,Clerk 更合适
  • 纯后端 API 项目:如果你只要 JWT 签发不做前端认证流程,jsonwebtoken + passport 更轻量
  • 对开源协议敏感的大型企业:MIT 协议无限制,但如果你需要 SLA 级别的商业支持,需购买 Enterprise 方案

快速开始

npm install better-auth
import { betterAuth } from "better-auth";

export const auth = betterAuth({
  emailAndPassword: { enabled: true },
  socialProviders: {
    google: { clientId: "...", clientSecret: "..." },
  },
});

下一步