パスワードのリセット

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) と異なる場合があります。
  1. コールバック URL をホストするサーバーは、E メール、SMS、その他の手段を介して買い物客にトークンを送信します。トークンは通常、買い物客がクリックできるリンクの一部として、または買い物客がフォームから入力する必要がある値として送信されます。
  2. 買い物客は、新しいパスワードとともにトークンを SLAS エンドポイント shopper-login:resetPassword に提供し、プロセスを完了します。

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

SLAS コールバックリクエストの検証の手順を参照してください。

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

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