PWA Kit v2 向けハイブリッド認証の実装
このガイドでは、PWA Kit アプリケーションをバージョン 2.10.0 にアップグレードし、ハイブリッド認証を実装する方法について説明します。PWA Kit 2.10.0 リリースでは、ハイブリッド認証との互換性や @salesforce/commerce-sdk-react パッケージとの統合など、重要な変更が導入されています。PWA Kit v2.10.0 は、SLAS パブリッククライアントのみをサポートします。詳細については、pwa-kit GitHub diff 全体を確認して、コード変更について理解を深めてください。
ハイブリッド認証の導入をこれから開始する新規のお客様は、PWA Kit v3.10.0 以降を使用して開始する必要があります。PWA Kit v3 でハイブリッド認証を実装する方法については、ハイブリッド実装ガイドを参照してください。
アップグレードを開始する前に、以下を満たしていることを確認してください。
- Node.js バージョン 18.x または 20.x (14.x/16.x のサポートからアップグレード)
- NPM バージョン 9.x または 10.x (6.x/7.x/8.x のサポートからアップグレード)
- Business Manager インスタンスでハイブリッド認証を有効にし、Managed Runtime で Cookie を有効にしていること。詳細については、ハイブリッド認証を参照してください。
最も重要な更新は、新しい Commerce SDK React 認証システムの導入です。
-
現在の Node.js と npm のバージョンを確認します。
Node.js バージョンが 18.x 未満の場合は、先にアップグレードしてください。npm のバージョンが 9.x 未満の場合も、先にアップグレードしてください。
-
package.jsonファイルを開き、次のセクションを更新します。"engines"セクションを更新します。"devDependencies"セクションを更新して、次の依存関係を追加またはバージョン更新します。 -
package.jsonファイルを保存します。 -
新しい依存関係をクリーンインストールします。
@testing-library/* の依存関係は任意です。これらが必要になるのは、react-testing-library を使用して単体テストを実装している場合のみです。
-
config/default.jsファイルを開きます。 -
ssrFunctionNodeVersionを含む行を見つけて更新します。 -
config/default.jsファイルを保存します。
新しい Commerce SDK React システムを使用するように、認証実装を更新します。
-
古い認証ファイルを削除します。
-
utils.jsファイルを更新します。ファイルの先頭から、次の import を削除します。
app/commerce-api/utils.jsから、次の関数を削除します。keysToCamelやcreateOcapiFetchなど、その他のユーティリティ関数は引き続き必要なため、そのまま残します。 -
useCustomerフックを更新します。app/hooks/use-customer.jsファイルを開き、認証メソッドを更新します。
useCustomer フックは、新しい Commerce SDK React の認証メソッドを使用するようになりました。既存のログインコンポーネントと登録コンポーネントは、これまでと同じ login() 関数と register() 関数を呼び出すため、変更する必要はありません。
Commerce API の実装は、@salesforce/commerce-sdk-react パッケージの新しい transformSDKClient ユーティリティを使用するように大幅に更新されています。詳細については、パッケージの README.md を参照してください。
-
app/commerce-api/index.jsファイルを開きます。 -
ファイルの先頭にある import を更新します。
-
auth モジュールのインスタンス化を更新します。
次の新しいコードに置き換えます。
-
SDK クライアントがインスタンス化されているセクション (100 行目から 150 行目付近) を見つけて、SDK インスタンス化ロジック全体を置き換えます。 次の古いコードを削除します。
次の新しいコードに置き換えます。
-
CommerceAPI クラスから、次のメソッドを見つけて削除します。
-
定数ファイルを更新します。
app/commerce-api/constants.jsに新しい定数を追加します。
Commerce API コンテキストは、Commerce SDK React および React Query と統合するように更新されています。
-
app/commerce-api/contexts.jsファイルを開きます。 -
ファイルの先頭に、次の import を追加します。
-
import の後に、
QueryClientの構成を追加します。 -
既存の
CommerceAPIProviderを、次の新しい実装に置き換えます。 -
app/commerce-api/contexts.jsファイルを保存します。
**重要な変更: ** CommerceAPIProvider で必要な props 構造が変更されました。
-
app/components/_app-config/index.jsxファイルを開きます。 -
CommerceAPIProviderコンポーネントを見つけて更新します。次のコードを:
次のコードに置き換えます。
-
app/components/_app-config/index.jsxファイルを保存します。
-
app/components/_app/index.jsxファイルを開きます。 -
login 呼び出しを削除します。
-
開発サーバーを起動します。
-
ビルドを実行して、エラーがないことを確認します。
PWA Kit v2.10.0 では、@salesforce/commerce-sdk-react の強力なクエリフックを使用できるようになりました。これらのフックは、ハイブリッドおよび非ハイブリッドの両方の PWA Kit v2.x ストアフロントで、自動キャッシュ、読み込み状態、エラー処理を提供します。ページでの使用方法は次のとおりです。
新しいクエリフックを使用して、最小限の注文リストコンポーネントを作成します。
新しいクエリフックの主なメリットは次のとおりです。
- 自動キャッシュ - データがキャッシュされ、共有されます。
- 読み込み状態 - 読み込み状態の管理が組み込まれています。
- エラー処理 - エラー状態が自動的に処理されます。
- 最適化されたフェッチ - 顧客情報を利用できる場合にのみフェッチされます。
- コードの簡素化 - 状態管理を手動で行う必要が減ります。