パスワードのリセット
Salesforce Commerce Cloud を使用して SLAS パスワードのリセットを実装するプロセスを学習します。これにより、買い物客はパスワードを更新し、アカウントを安全に保つことができます。
このプロセスには、shopper-login:getPasswordResetToken
と shopper-login:resetPassword
という 2 つの SLAS エンドポイントの呼び出しと、パスワードリセットトークンを送信するための SLAS サービスのコールバック URL の提供が含まれます。
SLAS パスワードリセットトークンは 10 分後に期限切れになります。
- パブリックにアクセス可能なコールバック URL を設定し、SLAS サービスから Webhook リクエストを受信して、E メール、SMS、その他の手段でリセットトークンを買い物客に送信します。
- そのコールバック URL を使用して SLAS クライアントを構成します。
- 一意のコードチャレンジとコードベリファイアを生成します。
- コールバック URL で
shopper-login:getPasswordResetToken
を呼び出すリセットフォームを作成し、プロセスを開始します。 - 買い物客がサーバーから送信されたリンクをたどって到達する更新フォームを作成します。買い物客が新しいパスワードとトークンを入力すると、パスワードが更新されます。その後、買い物客は新しいパスワードを使用してログインできます。
-
パブリックにアクセス可能なコールバック URL (ECOM インスタンス、Managed Runtime 環境、独自サーバーなど)。
現在コールバック URL がない場合は、テスト目的で Webhook.site などのパブリックサービスを使用できます。
-
コールバック URL で構成された SLAS クライアント。
- SLAS エンドポイント
shopper-login:getPasswordResetToken
を呼び出して、パスワードリセットプロセスを開始します。- パスワードリセットペイロードを含む SLAS Web サービスから Webhook リクエストを受信する、パブリックにアクセス可能な
callback_uri
を提供します。 - 一意のコードチャレンジとコードベリファイアを生成し、コードベリファイアをセキュアな場所に保存します。
- パスワードリセットペイロードを含む SLAS Web サービスから Webhook リクエストを受信する、パブリックにアクセス可能な
callback_uri
は、SLAS クライアントの許可されたコールバック URL に対して検証されます。callback_uri
が有効な場合、SLAS はパスワードリセットトークンを含む POST リクエストをコールバック URL に送信します。次に例を示します。
- SLAS Web サービスは、コールバック URL に対して
Content-Type: application/json
を使用して HTTP POST リクエストを行います。ペイロードには、パスワードのリセットに必要な 8 桁の数値であるtoken
と、買い物客のプロフィールに関連付けられている E メールアドレスや電話番号 (利用可能な場合) など、買い物客に連絡するための可能な方法が含まれています。通常、買い物客のemail_id
とlogin_id
は同じですが、Commerce Cloud では、買い物客の E メールアドレスが、ログインに使用する値 (login_id
) と異なる場合があります。
- コールバック URL をホストするサーバーは、E メール、SMS、その他の手段を介して買い物客にトークンを送信します。トークンは通常、買い物客がクリックできるリンクの一部として、または買い物客がフォームから入力する必要がある値として送信されます。
- 買い物客は、新しいパスワードとともにトークンを SLAS エンドポイント
shopper-login:resetPassword
に提供し、プロセスを完了します。新しいパスワードは、B2C Commerce サイトで設定されているパスワードの複雑さの要件を満たしている必要があります。要件を満たしていない場合、リクエストは拒否されます。
SLAS コールバックリクエストの検証の手順を参照してください。
次のサンプルコードは、SLAS プライベートクライアントを使用したパスワードリセットフローを示しています。
コールバック URL は SLAS Web サービスにアクセスできる 必要 があります。つまり、受信リクエストに対して認証メカニズムは使用できません。具体的な例としては、SLAS パスワードリセットでは B2C Commerce Storefront Protection (ストアフロントの保護) を使用できません。