- Auth.js(旧称: NextAuth.js) は今後、Better Authチームによって保守・管理される
- Auth.jsはJavaScriptエコシステムで最も広く使われているオープンソース認証ライブラリの1つで、多くの著名なWebサイトで活用されている
- これまでは認証やセッション管理を自前で実装するのが難しく、どの現場でも同じ基本要素を繰り返し開発する非効率さがあった
- Better AuthチームがAuth.jsの限界を認識し、将来のビジョンを共有したことで、両プロジェクトは統合してエコシステムをさらに発展させる計画
- 既存ユーザーは今後もセキュリティパッチなどの保守を受けられ、新規プロジェクトではBetter Authの利用が推奨される
紹介と発表
- Auth.js(以前はNextAuth.jsとして知られていた) は今後、Better Authチームによって正式に保守・管理される
- Auth.jsはJavaScriptエコシステムで最もよく知られたオープンソース認証ライブラリの1つで、すでに多くのサービス(ChatGPT、Google Labs、Cal.com など)で使われている
従来のAuth.jsの役割と限界
- Better Authに統合される前、Auth.jsは開発者がOAuth統合やセッション管理に長時間を費やさずに認証機能を持てるようにしていた
- しかし、Webアプリケーションが複雑化し、認証要件が多様化するにつれて、基本機能の繰り返し開発や拡張性不足といった限界が目立つようになった
- 既存チームもこうした点を認識していたが、さまざまな理由から根本的な改善までは実行できなかった
Better Authとの統合の背景
- Better Authの目標は、さまざまなサービスで認証の主導権を強化することであり、Auth.jsチームとのビジョンも似ていた
- 内部で議論を重ねる中で、2つのプロジェクトが1つになることが最善だと気づいた
- 現在のAuth.jsが無数のアプリケーション、企業、開発者にとって重要であることを踏まえ、継続的なセキュリティパッチと緊急課題への対応を約束している
推奨事項とエコシステム発展戦略
- 既存でAuth.js(NextAuth.js)を使っているプロジェクトは、今後も引き続き問題なく利用できる
- 新規プロジェクトでは、特定の機能(代表的にはデータベース不要のstateless session管理)が必要でない限り、Better Authの利用を推奨する
- Better Authのロードマップには、これらの機能も追加予定となっている。重複開発の代わりに、エコシステムを1つに統合して、より発展的な方向を目指す
マイグレーションとコミュニティへの感謝
- マイグレーションを検討しているチームにはガイドを提供し、今後さらに多くのドキュメントや資料を追加する予定
- これまでAuth.jsを発展させてきたコミュニティと主要な貢献者たち(特に Balázs、Thang Vu、Nico Domino、Lluis Agusti、Falco Winkler)に深い感謝を伝えている
- Better Authの出発点がAuth.jsであり、両プロジェクトの統合によって認証エコシステムがさらに前進できることを強調している
- 基本目標は変わらず、「認証の主導権は開発者自身にある」という考えを掲げている
5件のコメント
Next.js界隈の変化が激しすぎて、かなり疲れます…
こんなに不安定なものを使うくらいなら、いっそ clerk みたいなものを使って、ユーザーが増えてきたらそのときに本格的に認証の問題を考えるほうがよさそうですね
少し前に
auth.jsで何か作ってみたんですが、その間にまたいろいろ変わりましたね。Web 周りは本当にややこしくて疲れます。あと、ドキュメントとサンプルに間違いがあったので PR も出してみたんですが、特に問題ないというような感じで閉じられてしまって、かなり面食らいました。内部的にチームがうまく回っていない状態だったように思います。Auth.js が今や Better Auth の一部に
Better Auth - TypeScript 向けの包括的な Auth フレームワーク
Hacker Newsの意見
Better Authが500万ドルの資金調達を実施、完全無料のプロジェクトが商業ベンチャーに取り込まれる流れは残念に感じる
ChatGPT、Google Labs、Cal.comなどでAuth.jsが実際に使われていると聞いた。ただ、OpenAIがAuth0から認証システムを移したのは見ていないので、何があったのか気になる
このフレームワークのおかげで認証処理をほとんど気にしなくていいほど簡単になった。設定も簡単で、各フレームワーク間でも使い方が一貫している。今後もこうした利点が続きそうで安心した
誰かがBetter Authは「auth.jsより良いのか?」と聞いたとき、とっさに「auth.jsよりは良い」と思ったが、結局そういうことになった
Go言語にもこういう手軽な認証ソリューションがあればいいのに
両方の製品を使ったことがあり、個人的には満足していた。2つのプロジェクトが協力することになってうれしい
Clerkを使ってみているが、悪くなさそうだ。何にでもうわさはあるが、私はひとまず開発に集中したい
開発者の立場からすると、単純さを最大化してくれるのでBetter Authのほうが単純に良いと感じる
この知らせは残念だ。事実上、Auth.jsの追加開発が止まるように見える。私はAuth.jsのシンプルな関数実装だけでGraphQL APIのバックエンドで完璧に使えていたのが気に入っていたが、Better Authはデータ型がプラグインごとに異なり、TypeScriptのanyのように一般化されすぎている。さらに、データベーススキーマ設計やマイグレーション実行の責任までプラグイン開発者に委ねられている。認証ライブラリとしてはやりすぎだと思うし、この構造は好きになれない。アダプターを別途作ることもできるが、そのインターフェースですら、一般的すぎるSQL-likeな任意クエリ実行器を実装しなければならず、スキーマへの直接的な統制権が失われる。マイグレーションも単にコード文字列を受け取ってevalする構造なので、セキュリティ面の統制も容易ではない。 以前からBetter Authは技術的な斬新さよりも、開発者が独学だとか若いといった点に注目が集まる雰囲気があり、偏見を持たないようにしていたが、こうした懸念もまったくの的外れではなかったように思う。それでもAuth.jsが放置されている現状よりはましだが、JSエコシステムのオープンソース認証ライブラリの状況がそれだけ残念だということだ。 adapter実装例, TechCrunchで紹介された開発者記事
Better Authの発表から3時間後、Vercelに関する告知をGitHubコミットで削除した