📝

NextAuth.js と next-firebase-authの違い

2022/08/31に公開

はじめに

NextAuth.js と next-firebase-authで違いがあるようなのでまとめます。

NextAuth.js
https://next-auth.js.org/

next-firebase-auth
https://github.com/gladly-team/next-firebase-auth

NextAuth.js:

  • Firebase の認証を使用しません。Google OAuth (または別の ID プロバイダー) を使用し、 Firestoreアダプターを提供してセッション情報を保存します。つまり、ユーザーは Firebase 認証コンソールに表示されません。
  • 間違いなくより柔軟です。多くの認証プロバイダーとデータベース アダプターがあります。
  • 開発者は、電子メール サインイン用のセッション データベースを設定する必要があります
  • サーバー側のレンダリングでユーザーの Firebase ID トークンへのアクセスを直接提供しません。セッション データベースを使用する場合にのみ、同じユーザーに対して複数の ID プロバイダーをサポートします。リンクされたアカウントは NextAuth.js によって管理されます。
  • next-firebase-authタブの同期など、サポートされていない機能が含まれています
  • セットアップと管理が少し複雑/技術的である (主観的な評価)

next-firebase-auth:

  • Firebase 認証を使用するため、関連する Firebase 認証ツール (FirebaseUI など) をサポートします。
  • Firebase の認証機能に限定されており、カスタムのサーバー側セッション ストレージを提供していません
  • 開発者がセッション データベースを設定する必要はありません
  • サーバー側のレンダリングでユーザーの Firebase ID トークンへのアクセスを提供します
  • 同じユーザーに対して複数の ID プロバイダーをサポートします。リンクされたアカウントは、Firebase の認証ロジックによって管理されます。
  • セットアップと管理が少し簡単です (主観的な評価)

両方:

  • サーバー側のレンダリングをサポート
  • 認証保護されたルートをサポート
  • デフォルトで、署名付きの安全なサーバーのみの Cookie を使用する

どちらを使用するか

これは、アプリのニーズと好みによって異なります。
一般化された認証ソリューションを探している場合、NextAuth.js は優れた選択肢です。これにより、プラットフォームの独立性と柔軟性が向上します。執筆時点では、このプロジェクトは十分にサポートされているようで、開発者のコミュニティも良好です。Firebase プラットフォームをあまり利用する予定のない場合は良いでしょう。

next-firebase-authは、ハンズオフな認証バックエンドが必要な場合、またはスタック内の別の場所で Firebase プラットフォームに依存する場合に最適です。特に、メールサインインをサポートする必要がある場合は、簡単に開始できます。もちろん、Firebase プラットフォームにより依存しています。私はすぐに立ち上げたいプロジェクトにそれを選び、Firebase プラットフォームの機能を使用しました。

参考

https://github.com/gladly-team/next-firebase-auth/discussions/522#discussioncomment-3336440

Discussion