Cognitoのパスワードリセットフローのメール送信について

0

Cognitoのフォーラムが無いようでしたのでこちらから失礼いたします。

Webアプリの認証にCognitoを使用しています。
ユーザがパスワードを忘れた際に、
ForgotPassward APIを実行してユーザに認証コードを送信したいのですが
APIを実行しても登録されたアドレスにメールが送信されません。

https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/forgot-password.html
こちらのドキュメントの最後にあるExampleの通りにCLIで実行したところ
{
"CodeDeliveryDetails": {
"Destination": "q***@y***.jp",
"DeliveryMedium": "EMAIL",
"AttributeName": "email"
}
}
レスポンスはこのように帰ってくるのですが、Destinationにあるアドレスにはメールが届かないです。
どこか設定が漏れているのでしょうか。

コンソールのユーザごとの画面から「パスワードをリセットする」ボタンを押すと
verification_codeが入ったメールは送られてくるのですが、
こことは処理の内容が異なるのでしょうか。

稚拙な内容で恐縮なのですが、
詳しい方がいらっしゃいましたらメールの送信方法を教えて頂きたいです
宜しくお願いいたします。

6 Answers
0

気になる点が 2 つありましたのでご確認いただけないでしょうか。

1. UserPool の設定
"AccountRecoverySetting" の値はどのように設定されているでしょうか。
https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-recover-a-user-account.html
(日本語のコンソールにおいては「全般設定 > MFAそして確認 > ユーザーはどのようにしてアカウントを回復できますか?」のところになると思います)

2. ユーザーのメールアドレスの確認状態
コンソールでの表示は "true" になっていますでしょうか。

semnil
answered 4 years ago
0

1.(推奨) 使用可能な場合は E メール、それ以外の場合は電話。ただし、MFA にも使用している場合、電話でパスワードをリセットすることは許可しません
を選択しています
2.確認済みでtrueになってます

answered 4 years ago
0

同様の状況を再現しようと試してみましたが、「パスワードをリセットする」ボタンと同様のメールが送信されました。参考になるかわかりませんが、試した手順は下記の通りです。

1. Amplify で認証機能の実装
ログイン機能だけ、以下を参考に実装しました。
https://qiita.com/Hitomi_Nagano/items/1df47c72d6db863831c6

2. UserPool の設定変更
1 の手順で作成した UserPool は「(非推奨) 使用可能な場合は電話...」が選択されていたため「(推奨) 使用可能な場合は E メール...」に変更しました。その際のエラーを回避するため「多要素認証 (MFA) を有効にしますか?」を「省略可能」としました。

3. コンソール、Web アプリ、CLI から Forgot password 操作
どの手順でも 6 桁のコードが記載されたメールが送信されました。
※ CLI は macOS にて v2 を使用しました

% aws --version
aws-cli/2.0.10 Python/3.8.2 Darwin/19.4.0 botocore/2.0.0dev14
% aws cognito-idp forgot-password --client-id 4gf7f75vpqmp9glhikehahe10o --username semnil
{
"CodeDeliveryDetails": {
"Destination": "s***@g***.com",
"DeliveryMedium": "EMAIL",
"AttributeName": "email"
}
}

言うは易しで申し訳ありませんが、同様の手順を実施して設定内容を一つ一つ見比べてみるしかないかもしれません・・・。

semnil
answered 4 years ago
0

教えて頂いた条件と合わせて実行してもダメでした。
属性の「エンドユーザーをどのようにサインインさせますか?」は何を選択されてますでしょうか?
お付き合い頂きまして大変恐縮です。
教えて頂けますでしょうか

answered 4 years ago
0

属性の「エンドユーザーをどのようにサインインさせますか?」は何を選択
参照先のページ記載の通りに実施したのでユーザー名 (How do you want users to be able to sign in? Username) です。

ちなみに、もう一度「E メールアドレスおよび電話番号」(How do you want users to be able to sign in? Email を選択して) でやり直してみましたが、メールは届きました。

semnil
answered 4 years ago
0

ありがとうございました
いろいろ設定を変えてみたところ無事送信されました!

結局なにが原因なのかはよくわかりでした、、
原因はわかりましたらまたご連絡させていただきますが、
ひとまず無事送信できました。

ご助言ありがとうございました!

Edited by: kaonaga9 on May 6, 2020 1:31 AM

answered 4 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions