跳到正文
一AllOne
关注

怎么选

给网站加登录注册:Clerk、Supabase Auth、Better Auth、Auth.js 怎么选

给网站加登录,先想清楚「用户数据放在别人的服务里,还是自己的数据库里」。这篇对比 Clerk、Supabase Auth、Better Auth、Auth.js 的免费额度和价格、登录方式、Auth.js 现状、微信和手机号登录,以及上线前常踩的坑。

发布于 2026-10-28 · 最后核实:2026-10-28 · 文中价格与额度以各官网为准

网站做到「用户要能保存自己的东西」,就得加登录。一搜一堆名字:有的按用户数收费,有的免费但要自己配数据库,还有一个听说换了维护团队。到底差在哪?

结论先说:想最快上线、不想碰数据库和会话,用 Clerk;后端已经用 Supabase,就用它自带的 Supabase Auth;想让用户数据留在自己的数据库、要微信登录或者不想按月活付费,用 Better Auth;Auth.js 已由 Better Auth 团队接手,老项目可以继续用,新项目不建议再从它起步。本文信息核实于 2026-10,价格和额度随时可能调整,以官网为准。

先搞懂:托管服务和开源库

托管服务(Clerk、Supabase Auth) 开源库(Better Auth、Auth.js)
用户数据存在哪 服务商那里(Supabase 存在你项目的 Postgres 里,数据库由它托管) 你自己的数据库
会话、密码哈希、发验证邮件 服务商处理 库帮你实现逻辑,数据库和发信服务你自己准备
费用 按月活用户计费,有免费额度 库免费,付数据库、邮件、短信的钱

一句话:托管服务省事但按人头交钱;开源库多花点配置时间,换来数据和成本都在自己手里。SuperTokens 介于两者之间,可自部署也有托管版,本文不展开。

价格和免费额度

免费额度 付费起价 计费方式
Clerk Hobby:每应用 5 万 MRU Pro $25/月(年付 $20/月) 按月留存用户(MRU),超出 5 万后 $0.02/人/月起
Supabase Auth Free 计划:5 万月活(MAU) Pro $25/月起,含 10 万 MAU 超出后 $0.00325/MAU
Better Auth 库免费(MIT 许可) 可选托管基础设施 Pro $20/月 不按用户收费,数据库自付
Auth.js 库免费(ISC 许可) 无 不按用户收费,数据库自付

几点补充:

  • Clerk 的 MRU 比月活更宽松。注册 24 小时后再次访问才算留存用户,注册完就不再来的人不计费。但 Hobby 不含 Passkey、MFA、短信验证码,社交登录最多 3 个,会话固定 7 天,界面带 Clerk 标识。
  • Supabase 免费计划不只限月活。还限制最多 2 个活跃项目、500MB 数据库,一周不活跃会被暂停。
  • 开源库也不是零成本。你需要一个数据库(可用 Supabase、Neon 等的免费档,见一个人上线网站的免费工具组合)和一个发信服务。Better Auth 的付费基础设施提供仪表盘、审计日志等,是可选的。

登录方式对比

Clerk Supabase Auth Better Auth Auth.js
邮箱 + 密码 有 有 有 有(Credentials,需自己校验密码)
魔法链接 / 邮箱验证码 有 有 插件(Magic Link、Email OTP) 有魔法链接
社交登录 有,免费版最多 3 个 有 有 有,内置提供商很多
Passkey Pro 起 有,官方标注实验性 插件 有,官方标注实验性、不建议生产使用
两步验证 Pro 起 有(TOTP 免费,手机号另收费) 插件 文档里没有现成方案
组织 / 多租户 有,免费含 100 个月留存组织、每组织 20 人 文档里没有现成模块 插件(Organization) 没有
框架 Next.js、React、Expo、Astro、Nuxt、Vue、Express 等 Next.js、Astro、React、React Native 等 Next.js、Nuxt、SvelteKit、Astro、Hono、Express 等 Next.js、SvelteKit、Express、Qwik、SolidStart

Auth.js 现在怎么样了

Auth.js 原名 NextAuth.js。2025 年 9 月 22 日,Better Auth 官方博客宣布 Auth.js 改由 Better Auth 团队维护;Auth.js 原维护者也在 GitHub 讨论区发了公告,承认过去一年开发节奏放缓。官方说法是:

  1. 现有 Auth.js 用户可以继续用,安全补丁和紧急问题会继续处理。
  2. 新项目建议直接用 Better Auth,除非你需要「不依赖数据库的无状态会话」,这是 Better Auth 目前的主要缺口。
  3. 有从 Auth.js 迁移的官方指南,但当前项目运行良好就不急着迁。

npm 上 next-auth 稳定版仍是 4.x,v5 仍是 beta,看老教程时留意版本。

国内用户:微信和手机号

  • 微信登录:Better Auth 和 Auth.js 官方文档都有内置的 WeChat 提供商,需先在微信开放平台注册应用,拿到 AppID 和 AppSecret。Clerk 和 Supabase Auth 官方社交登录列表里没有看到微信。
  • 手机号短信:Clerk 需付费计划、按条计费,默认只开放美国和加拿大号码,其他国家要在后台打开。Supabase Auth 需接 Twilio、MessageBird、Vonage 等短信服务。Better Auth 的手机号插件负责验证码逻辑,发短信要你自己接服务商。Auth.js 没有现成的短信登录。

怎么选:按你的情况对号入座

想今天就上线,用户主要在海外。用 Clerk。登录页和用户管理后台都是现成的,5 万留存用户以内免费。

数据库已经是 Supabase。直接用 Supabase Auth。用户表就在你的 Postgres 里,能直接配合行级安全(RLS),不用再接第二家服务。

想把用户数据握在自己手里,或者用户多但不赚钱。用 Better Auth。免费产品用户一多,按人头计费会越来越贵。

要微信扫码登录。Better Auth(或继续用 Auth.js 的老项目)。

做 B2B,要组织和邀请成员。Clerk 最现成;Better Auth 的 Organization 插件也能做。

常见的坑

  1. 回调地址没配全。社交登录要在 Google、GitHub、微信等平台填回调地址,本地、预览、正式域名分别加上;Supabase 的 Redirect URLs 也有白名单。登录跳回报错,多半是这里。
  2. 开发密钥带到了生产。Clerk 的开发实例密钥是 pk_test_ / sk_test_,生产是 pk_live_ / sk_live_;开发环境的社交登录用 Clerk 的共享 OAuth 凭据,生产要换成你自己的,还要有自己的域名和 DNS 记录,开发实例的用户也不能迁到生产。用环境变量区分两套配置,别把密钥写进代码,用 AI 写代码时尤其注意,见用 Agent 写代码不翻车。
  3. 验证邮件发不出去。Supabase 自带的发信只发给项目团队成员,目前每小时 2 封,上线前要配自己的 SMTP(如 Resend、AWS SES)。Better Auth 和 Auth.js 本来就要自己接发信。发信域名记得配 SPF、DKIM、DMARC。
  4. 按月活计费,用户涨了账单也涨。算一下:Clerk 按年付时,10 万留存用户约 $20 + 5 万 × $0.02 = $1,020/月;Supabase Pro 超出 10 万 MAU 后每人 $0.00325。选型前按预期用户量算一遍。
  5. 以后想换,密码哈希对不上。Better Auth 默认用 scrypt,Clerk 用 bcrypt,从 Clerk 迁到 Better Auth 要把密码校验改成 bcrypt;导入 Clerk 要在 password_hasher 注明旧算法。迁移还会让所有登录状态失效。

参考资料

常见问题

Clerk 免费能用多少用户?
按 Clerk 定价页(2026 年 10 月):Hobby 免费计划每个应用 5 万月留存用户(MRU)。用户注册 24 小时后再次回来才算留存用户。超出需升级 Pro(月付 $25,年付折合 $20/月),之后每个 MRU $0.02/月起。Passkey、MFA 要 Pro 才有。
Auth.js(NextAuth)还在维护吗?
Auth.js 于 2025 年 9 月宣布由 Better Auth 团队接手维护。现有用户可以继续用,安全补丁和紧急问题会继续处理;新项目官方建议用 Better Auth,除非需要不依赖数据库的无状态会话。
Better Auth 和 Auth.js 免费吗?
两者都是开源库,Better Auth 和 Auth.js 分别采用 MIT 和 ISC 许可,库本身免费。数据库、发邮件、发短信的费用由你承担。Better Auth 另有可选的付费基础设施(Pro $20/月),不买不影响使用。
哪家原生支持微信登录和手机号短信登录?
Better Auth 和 Auth.js 的官方文档里都有内置的微信(WeChat)登录提供商;Clerk 和 Supabase Auth 的官方社交登录列表里没有看到微信。手机号短信:Clerk 和 Supabase Auth 支持,按条付费或需接短信服务;Better Auth 有手机号插件,短信自己接;Auth.js 没有现成方案。
一个人做小项目,选哪家?
本文的建议:想最快上线、用户在海外,用 Clerk;数据库已是 Supabase,用 Supabase Auth;想让数据留在自己的数据库或要微信登录,用 Better Auth;新项目不建议再从 Auth.js 起步。

← 返回教程列表