Amazon CognitoのForgotPassword(パスワードを忘れた)の処理フロー
はじめに
こんにちは、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