• js
  • next
  • next-auth
  • auth.js

NextAuth.js v4からAuth.js v5への移行

Logto統合をNextAuth.js v4からv5に移行するためのガイドです。

Sijie
Sijie
Developer

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クイックスタートガイドも参照してください。