💀

ちょっと待って。本当にbetter-authで大丈夫?

に公開

better-authの勢いすごいですよね。

少し前までデファクトスタンダードだったAuth.jsもついにbetter-authの一部になり、認証を実装するなら、better-auth一択という雰囲気を感じます。

https://www.better-auth.com/blog/authjs-joins-better-auth

だがしかし。

ちょっと待って。そのプロダクト、本当にbetter-authで大丈夫?

私がbetter-authを業務で使って困ったところを2個述べます。

特にOrganizationプラグインを使ったマルチテナントB2Bサービスを作ろうとしている人は要注意です。

1. エラーメッセージが日本語対応していない

エラーメッセージを日本語で出す場合は自力で実装しないといけません。。。
https://www.better-auth.com/docs/concepts/client#handling-errors

Clerkは対応しています。
https://clerk.com/docs/guides/customizing-clerk/localization

2. バグがある(そして治らない)

better-authのOrganizationプラグインを入れると、Slackのワークスペースのようなことができます。
ただし、そのOrganizationに追加カラムを足そうとする場合は要注意です。

https://github.com/better-auth/better-auth/issues/3686

useActiveOrganizationフックでユーザーにとって現在アクティブな組織を取得できるのですが、その返り値の型に、追加カラムが反映されないというバグがあります😭 (useListOrganizationsも)

追加カラムを足すユースケースは少なくないと思うので無視できないバグですが、Issueが投稿されてから約3ヶ月経った現在も治っていません。

バグがあるのは仕方のないことですが、こうも対応が遅いと心配になります。

3. 招待機能

こちらもOrganization関連の不満です。

アカウントをすでに作っているユーザーに対して組織の招待を送ることはできます。

しかし、招待フローといえば、アカウントをまだ登録していないユーザーに対して、メールを送り、そのメールからアカウントを作成すれば、自動的に組織に参加できるというフローではないでしょうか?

こちらbetter-authではそういったフローを想定した作りになっていないため、自力で実装する必要があります。

https://github.com/better-auth/better-auth/issues/4223

Clerkならば、事前に用意されたコンポーネントを使うことも、カスタマイズすることも可能です。

https://clerk.com/docs/guides/development/custom-flows/organizations/accept-organization-invitations

まとめ

better-authは素晴らしいソリューションですが、少なくとも2025年10月1日時点では、マルチテナント用途には向いてない(細かいところに手が行き届いていない)印象を受けました。

ClerkやWorkOSならば、

  • 公式で用意されたUIコンポーネントがあるので素早く開発できる。
  • MAUが多くなければ無料で使える。
  • Convexと正式に連携できる。

のような魅力的な点があります。

Web開発だったらClerkかWorkOSがおすすめです。
https://clerk.com
https://workos.com

ネイティブアプリも視野ならAuth0もいいでしょう。
https://auth0.com

ローカルDBで認証を管理したい気持ちもわかりますが、サポートがしっかりしている認証SaaSを選ぶのも一考の余地があります。

少なくとも思考停止でbetter-authを選ぶのはやめましょう。

Discussion