Hacker News 中文摘要

RSS订阅

从Supabase到Clerk:迈向更优认证 -- From Supabase to Clerk to Better Auth

文章摘要

文章讲述了Val Town从使用Supabase转向更传统的数据库架构,包括用Render替代数据库服务、用Clerk替代身份验证功能。但到2023年底,他们又遇到了新的挑战,需要进一步优化认证系统。

文章总结

从Supabase到Clerk再到Better Auth:Val Town的认证服务演进之路

作者Tom MacWright于2026年5月6日分享了Val Town平台认证服务的迁移历程。

迁移背景

Val Town最初使用Supabase提供的全套服务,包括认证功能。2023年迁移到更传统的数据库架构时,选择了Render作为数据库替代方案,Clerk作为认证服务提供商。然而到了2023年底,团队决定替换Clerk,最终在一个月前切换到了Better Auth。

Clerk存在的问题

尽管Clerk是家成功的企业(刚获得5000万美元融资),但Val Town遇到了两个核心问题:

  1. 用户表替代方案不佳

    • Clerk试图完全替代用户表,但存在严重的速率限制问题(仅允许每秒5次请求)
    • 社交功能需求与Clerk的设计假设冲突(Clerk默认用户只需查看自己的头像和信息)
    • 不得不通过webhook同步数据,导致注册流程复杂
  2. 单点故障风险

    • Clerk成为所有用户会话的单点故障源
    • 当Clerk服务中断时,整个网站将无法使用
    • 自2025年5月以来,Clerk的可用性仅在99.9%到99.99%之间波动

为何长期使用Clerk

团队没有立即切换的原因包括: - 保持决策稳定性对开发效率和团队健康很重要 - Clerk确实有其优势:提供完善的SDK支持、良好的管理界面和反滥用措施 - 认证服务领域缺乏理想的替代方案

选择Better Auth的原因

Better Auth满足了以下关键需求: - 代码质量高,框架集成好 - 真正可作为独立开源项目使用 - 消除了对第三方会话管理的依赖 - 付费服务采用无状态架构,不参与会话管理

迁移经验

团队在LLM的辅助下实现了为期两周的过渡期,期间系统能同时处理两种认证cookie。最终完全切换到了手工编写的Better Auth方案。

经验总结

  • 上游服务提供商直接影响系统可用性
  • 成功的产品不一定适合所有特定场景
  • 软件领域变化迅速,合适的解决方案可能稍后才会出现

作者还提供了Better Auth入门模板,方便开发者在Val Town上快速实现认证功能。

评论总结

以下是评论内容的总结:

1. 对Clerk的批评

  • 主要观点:用户对Clerk的可靠性、代码质量和功能缺失表示不满。
  • 关键引用
    • "Clerk is just a mess...他们的JS文件现在触发浏览器检查器,因为加载速度慢。"(cyberax)
    • "没有适当的RBAC...过去几周/几个月多次出现停机,导致整个应用失败。"(elAhmo)

2. 对Better Auth的正面评价

  • 主要观点:用户认为Better Auth灵活、可定制,适合替代第三方服务。
  • 关键引用
    • "Better Auth很棒!比使用Clerk这样的东西更容易修改。"(supermdguy)
    • "Better Auth真正展示了如何用库替代服务...它在前端、后端和数据库中集成。"(WilcoKruijer)

3. 对Auth0的偏好

  • 主要观点:部分用户坚持使用Auth0,认为其可靠且易用。
  • 关键引用
    • "多年来我一直使用Auth0...易于使用且可靠性高。"(moomoo11)
    • "我坚持使用Auth0,因为不知道Keycloak是否有良好的记录。"(manishsharan)

4. 自托管认证的倾向

  • 主要观点:一些用户倾向于自托管认证解决方案,认为第三方服务不必要。
  • 关键引用
    • "为什么我要将Postgres用户表交给第三方提供商?这只是一些字段的数据。"(tornikeo)
    • "在Rails中,我直接用authentication-zero,不需要第三方提供商。"(dzonga)

5. 对技术文章和迁移工具的赞赏

  • 主要观点:用户赞赏关于工程决策和技术迁移的文章及工具。
  • 关键引用
    • "我喜欢之前的Supabase迁移文章...请继续写博客!"(wxw)
    • "如果你用Elixir,我整理了一些包来帮助从Supabase迁移。"(cpursley)

6. 对认证服务生态的看法

  • 主要观点:认证服务生态变化快,但标准和需求持续存在。
  • 关键引用
    • "认证服务的更替永无止境,但标准也是如此。"(rbbydotdev)
    • "减少组件并选择可靠的解决方案非常重要。"(BoppreH)

总结涵盖了主要观点和论据,同时保持了不同观点的平衡性。