パスワードのリセット

Salesforce Commerce Cloud を使用して SLAS パスワードのリセットを実装するプロセスを学習します。これにより、買い物客はパスワードを更新し、アカウントを安全に保つことができます。

このプロセスには、shopper-login:getPasswordResetTokenshopper-login:resetPassword という 2 つの SLAS エンドポイントの呼び出しと、パスワードリセットトークンを送信するための SLAS サービスのコールバック URL の提供が含まれます。

SLAS パスワード リセット トークンは 10 分後に期限切れになります。

  1. パブリックにアクセス可能なコールバック URL を設定し、SLAS サービスから Webhook リクエストを受信して、E メール、SMS、その他の手段でリセットトークンを買い物客に送信します。
  2. そのコールバック URL を使用して SLAS クライアントを構成します。
  3. 一意のコードチャレンジとコードベリファイアを生成します。
  4. コールバック URL で shopper-login:getPasswordResetToken を呼び出すリセットフォームを作成し、プロセスを開始します。
  5. 買い物客がサーバーから送信されたリンクをたどって到達する更新フォームを作成します。買い物客が新しいパスワードとトークンを入力すると、パスワードが更新されます。その後、買い物客は新しいパスワードを使用してログインできます。
  • パブリックにアクセス可能なコールバック URL (ECOM インスタンス、Managed Runtime 環境、独自サーバーなど)。

    現在コールバック URL がない場合は、テスト目的で Webhook.site などのパブリックサービスを使用できます。

  • コールバック URL で構成された SLAS クライアント。

  1. SLAS エンドポイント shopper-login:getPasswordResetToken を呼び出して、パスワードリセットプロセスを開始します。

    1. パスワードリセットペイロードを含む SLAS Web サービスから Webhook リクエストを受信する、パブリックにアクセス可能な callback_uri を提供します。
    2. 一意のコードチャレンジとコードベリファイアを生成し、コードベリファイアをセキュアな場所に保存します。
  2. callback_uri は、SLAS クライアントの許可されたコールバック URL に対して検証されます。

  3. callback_uri が有効な場合、SLAS はパスワードリセットトークンを含む POST リクエストをコールバック URL に送信します。

    SLAS Web サービスは、コールバック URL に対して Content-Type: application/json を使用して HTTP POST リクエストを行います。このペイロードには、パスワードのリセットに必要な 8 桁の数値である token が含まれており、利用可能な場合はプロフィールに関連付けられた E メールアドレスや電話番号など、買い物客に連絡を取れる可能性のある方法も含まれています。一般に、買い物客の email_idlogin_id は同じですが、Commerce Cloud では、買い物客の E メールアドレスが、ログインに使用する値 (login_id) と異なる場合があります。

  4. コールバック URL をホストするサーバーは、E メール、SMS、その他の手段を介して買い物客にトークンを送信します。トークンは通常、買い物客がクリックできるリンクの一部として、または買い物客がフォームから入力する必要がある値として送信されます。

  5. 買い物客は、新しいパスワードとともにトークンを SLAS エンドポイント shopper-login:resetPassword に提供し、プロセスを完了します。

    新しいパスワードは、B2C Commerce サイトで設定されているパスワードの複雑さの要件を満たしている必要があります。要件を満たしていない場合、リクエストは拒否されます。

次のサンプルコードは、SLAS プライベートクライアントを使用したパスワードリセットフローを示しています。

コールバック URL は SLAS Web サービスにアクセスできる 必要 があります。つまり、受信リクエストに対して認証メカニズムは使用できません。具体的な例としては、SLAS パスワードリセットでは B2C Commerce Storefront Protection (ストアフロントの保護) を使用できません。