为什么 Amazon Cognito 没有使用 ForgotPassword API 发送验证码电子邮件或 SMS 短信?

2 分钟阅读
0

Amazon Cognito 没有发送用于 ForgotPassword API 调用的验证码电子邮件或 SMS 短信。

解决方法

请按照以下最佳实践对 Amazon Cognito 用户池配置进行故障排除。

检查垃圾邮件和垃圾邮件文件夹

确保验证电子邮件没有转到用户的垃圾邮件或垃圾邮件文件夹。

确认用户池中存在该用户

验证该用户是否存在于 Amazon Cognito 用户池中。要使用 Amazon Cognito 控制台在用户池中搜索用户,请参阅管理和搜索用户账户

-或者-

使用 AdminGetUser API 在用户池中搜索用户。

用户未处于“已确认”状态

默认情况下,管理员创建的用户将处于 FORCE_CHANGE_PASSWORD 状态,直到他们使用提供的密码登录为止。然后,系统会提示用户更改密码。

如果用户状态为 FORCE_CHANGE_PASSWORD,则无法使用 ForgotPassword API 调用,也不会发送验证码。

检查用户如何恢复账户

验证如何配置用户账户以恢复账户。例如,电子邮件、电话、仅电子邮件、仅电话、电话(如果有)或无。

1.    打开 Amazon Cognito 控制台,选择 manage user pools(管理用户池),然后选择用户池。

2.    在 General settings(常规设置)中,选择 MFA and verifications(MFA 和验证)。

3.    在 How will a user be able to recover their account?(用户可以如何恢复其账户?)部分中,请注意选择的恢复方法。

处于“已确认”状态的用户可能无法通过电子邮件或电话进行密码恢复验证。管理员创建的用户账户必须在使用验证复选框创建账户时进行验证。管理员还可以使用 API 调用 AdminUpdateUserAttributes 将电话和电子邮件标记为已验证,如下所示:

电子邮件已验证

aws cognito-idp admin-update-user-attributes --user-pool-id <userpool
 id> --username <user name> --user-attributes 
Name=email_verified,Value=true --region <region name>

电话号码已验证

aws cognito-idp admin-update-user-attributes --user-pool-id <userpool
 id> --username <user name> --user-attributes 
Name=phone_number_verified,Value=true --region <region name>

查看 Amazon SNS 配额限制

Amazon Cognito 使用 Amazon Simple Notification Service (Amazon SNS) 发送 SMS 短信。账户的原定设置 Amazon SNS 支出配额为每月 USD 1.00。要检查或更改账户支出限额,请参阅使用 AWS 管理控制台设置 SMS 消息收发首选项

**重要提示:**如果在 AWS 管理控制台中设置的账户支出限制超出了您的服务配额,则 Amazon SNS 将停止发布 SMS 短信。

有关配额的更多信息,请参阅请求增加 Amazon SNS 的月度 SMS 支出配额

查看 Amazon SES 限制

Amazon Cognito 使用 Amazon Simple Email Service (Amazon SES) 发送电子邮件。默认情况下,Amazon Cognito 每天只允许您的用户池发送有限数量的电子邮件。有关更多信息,请参阅 Amazon Cognito 用户池资源配额

通过将用户池配置为使用 Amazon SES 电子邮件配置,您可以设置更高的电子邮件传送率。有关说明,请参阅 Amazon Cognito 用户池的电子邮件设置

使用 AdminSetUserPassword API 重置用户密码

管理员可以使用 AdminSetUserPassword API 将 Amazon Cognito 用户池中的用户密码设置为临时密码或永久密码。具有临时密码的用户必须在到期前登录并更改密码。用户重置临时密码后,或者如果该密码为永久密码,则状态将设置为“已确认”。


相关信息

SMS 短信发送失败的原因

admin-get-user

AdminResetUserPassword

AWS 官方
AWS 官方已更新 2 年前