🗝️

Amazon CognitoのForgotPassword(パスワードを忘れた)の処理フロー

2024/01/15に公開

はじめに

こんにちは、GenAiの菅原です。
Amazon Cognitoは便利なサービスです。ユーザー管理と認証プロセスを簡単に実装できる機能を提供してくれます。Cognitoの利用の際は様々なフローについての理解が重要です。今回はその中でも「Forgot Password」フローについて簡単に解説していきたいと思います。

ForgotPasswordのフロー概観

ForgotPasswordのフローは、クライアントアプリ側にてユーザーがパスワードを忘れてしまい、ログインできなかった時に使います。

1. パスワードリセット要求

まず、ユーザーがクライアントアプリの操作を行い、パスワードリセットを要求します。

2. ForgotPassword API呼び出し

クライアントアプリケーションは、CognitoのForgotPassword APIを呼び出します。この処理は、クライアントアプリから直接SDKで呼び出すのが一般的です。
この際、必須となるリクエストパラメーターは以下となります。

  • ClientId (ユーザープールに紐づくClientのID)
  • Username (ユーザー名、メールアドレス、電話番号など)

3. 確認コード送信(メールまたはSMS)

Cognito(またはAmazon SNS)が確認コードをメールまたはSMSで送信します。どちらに送られるかは、属性検証とユーザーアカウントの確認で設定した内容に基づきます。

4. 確認コードと新しいパスワードを入力

ユーザーがクライアントアプリに新しいパスワードとメッセージで届いた確認コードを入力します。

5.ConfirmForgotPassword API呼び出し

CognitoのConfirmPassword APIを呼び出します。
この際、必須となるリクエストパラメータは以下となります。

  • Username(ユーザー名、メールアドレス、電話番号など)
  • Password(前述の新しいパスワード)
  • ConfirmationCode(前述の確認コード)

6. パスワードリセット結果のレスポンス

成功した場合、Cognitoからは空のBodyの入ったステータスコードが200のレスポンスが返ってきます。

7. パスワードリセット成功の通知

クライアントアプリでパスワードリセットに成功した旨を表示して処理は終わりです。

まとめ

まとめると、パスワードを忘れた時の流れは、ForgotPasswordとConfirmForgotPasswordの2つを呼び出す流れを実装すればOKです。このメモが誰かのお役に立てば幸いです。

Discussion