NextAuth.js v4からAuth.js v5への移行
Logto統合をNextAuth.js v4からv5に移行するためのガイドです。
NextAuth.jsバージョン5はnext-auth
パッケージの大規模な書き直しであり、Logtoを含むさまざまな統合に影響を与える破壊的な更新をもたらします。このガイドでは、Logto統合をNextAuth.js v4からAuth.js v5に移行するプロセスを案内します。
最近、NextAuthクイックスタートガイドを更新しました。ぜひチェックしてください!
変更点を理解する
Auth.js v5
NextAuth.js v5は数多くの破壊的変更を導入しています。Logtoとの統合方法に影響を与える主な変更は「OIDC/OAuthプロバイダー」に関するものです。公式ドキュメントには、「Auth.jsは@auth/coreとより厳密なOAuth/OIDC仕様順守に基づいて構築されており、これが既存のOAuthプロバイダーを破壊する可能性があります」と記されています。Logtoのユーザーにとっては、プロバイダーの設定を更新する必要があることを意味します。
詳細な変更については、公式移行ガイドを参照してください。
Logtoプロバイダー設定
Logtoのプロバイダー設定が更新されました:
- タイプが
oauth
からoidc
に変更されました。 wellKnown
エンドポイントが削除され、代わりにissuer
フィールドを提供する必要があります。id_token
署名アルゴリズムを指定する必要はありません。ES384
をサポートしており、自動的に検出されます。
ステップバイステップの移行ガイド
新しい設定テンプレートを使ってpages/api/auth/[...nextauth].js
ファイルのプロバイダー設定を更新します:
ステップ1: プロバイダーのタイプを変更する
プロバイダーのタイプをoauth
からoidc
に変更します。
ステップ2: issuerフィールドを追加する
issuerフィールドをプロバイダー設定に追加します。Logtoアプリケーションの詳細ページでIssuerの値を取得できます。「Issuer endpoint」のフィールドに記載されています。Logtoクラウドサービスを使用している場合、https://xxxx.logto.app/oidc
のようになります。
その後、wellKnown
フィールドを削除できます。
ステップ3: id_token_signed_response_alg
署名アルゴリズムを削除する
プロバイダー設定でid_token_signed_response_alg
署名アルゴリズムを指定する必要はありません。ES384
をサポートしており、自動的に検出されます。
プロジェクトを更新する
プロバイダー設定を更新した後、next-auth
パッケージをv5に更新する必要があります。パッケージを更新し、アプリケーションが期待通りに動作するか確認するために、公式移行ガイドを確認してください。また、NextAuthクイックスタートガイドも参照してください。