配置电子邮件或电话验证 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

配置电子邮件或电话验证

注意

在新的 Amazon Cognito 控制台体验中,您可以在用户池的 Sign-up experience(注册体验)选项卡中管理验证。

您可以在 MFA and verifications(MFA 和验证)选项卡下选择电子邮件或电话验证的设置。有关多重验证 (MFA) 的详细信息,请参阅SMS 文本消息 MFA.

Amazon Cognito 使用 Amazon SNS 发送短信。如果您之前没有从 Amazon Cognito 或任何其他 Amazon Web Service发送 SMS 消息,Amazon SNS 可能会将您的账户放在 SMS 沙盒中。我们建议您在将账户从沙盒移到生产环境之前,向已验证的电话号码发送测试消息。此外,如果您计划向美国的目标电话号码发送短信,则必须从 Amazon Pinpoint 获取源 ID 或发件人 ID。要为 Amazon Cognito 用户池配置 SMS,请参阅 Amazon Cognito 用户池的短信设置

Amazon Cognito 可以自动验证电子邮件地址或手机号码。要进行此验证,Amazon Cognito 将发送验证代码,对于电子邮件,则发送验证链接。对于电子邮件地址,Amazon Cognito 将通过电子邮件发送代码或链接。对于电话号码,Amazon Cognito 以 SMS 文本消息的形式发送代码。

Amazon Cognito 必须验证电话号码或电子邮件地址来确认用户,帮助他们恢复忘记的密码。或者,您也可以通过预注册 Lambda 触发器或使用 AdminConfirmSignUp API 操作自动确认用户。有关更多信息,请参阅 注册并确认用户账户

验证代码或链接的有效期为 24 小时。

如果您选择要求通过电子邮件地址或电话号码进行验证,则在用户注册时,Amazon Cognito 将自动发送验证代码或链接。如果用户池已配置了 自定义 SMS 发件人 Lambda 触发器自定义电子邮件 Lambda 触发器,则会改为调用该函数。

注意
  • Amazon SNS 会另外收取用于验证电话号码的 SMS 文本消息费用。向电子邮件地址发送验证代码不收费。有关 Amazon SNS 定价的信息,请参阅 Worldwide SMS 定价。有关提供 SMS 消息收发服务的最新国家/地区列表,请参阅支持的区域和国家/地区

  • 当您在应用程序中测试从 Amazon Cognito 生成电子邮件的操作时,请使用 Amazon Cognito 可以发送到而不会查无此人的邮件的真实电子邮件地址。有关更多信息,请参阅 在测试应用程序时发送电子邮件

  • 忘记密码流程要求通过用户的电子邮件或电话号码来验证用户。

重要

如果用户同时注册了电话号码和电子邮件地址,且用户池设置需要验证这两个属性,Amazon Cognito 通过 SMS 将验证代码发送到手机上。Amazon Cognito 未验证电子邮件地址,因此您的应用程序必须调用 GetUser 以查看电子邮件地址是否在等待验证。如果确实需要验证,应用程序必须调用 GetUserAttributeVerificationCode 以启动电子邮件验证流程。然后,它必须通过调用 VerifyUserAttribute 来提交验证码。

您可以为 Amazon Web Services 账户以及个人消息指定支出限额。该限额仅适用于发送 SMS 消息的费用。有关更多信息,请参阅 Amazon SNS 常见问题

Amazon Cognito 使用 Amazon SNS 资源发送 SMS 消息,这些资源位于您创建用户池的 Amazon Web Services 区域,或者位于下表中的旧版 Amazon SNS 备用区域。亚太地区(首尔)区域中的 Amazon Cognito 用户池例外。这些用户池使用您在亚太地区(东京)区域中的 Amazon SNS 配置。有关更多信息,请参阅 步骤 1:为 Amazon SNS SMS 消息选择 Amazon Web Services 区域。

Amazon Cognito 区域 旧版 Amazon SNS 备用区域
美国东部(俄亥俄) 美国东部(弗吉尼亚北部)
亚太地区(孟买) 亚太地区(新加坡)
亚太地区(首尔) 亚太地区(东京)
加拿大(中部) 美国东部(弗吉尼亚北部)
欧洲(法兰克福) 欧洲(爱尔兰)
欧洲(伦敦) 欧洲(爱尔兰)

示例:如果您的 Amazon Cognito 用户池位于亚太地区(孟买)区域,并且您增加了在 ap-southeast-1 区域中的支出限额,则可能不希望请求单独增加 ap-south-1 的支出限额。而是可以使用亚太地区(新加坡)中的 Amazon SNS 资源。

授权 Amazon Cognito 代表您发送消息。

要代表您向您的用户发送短信,Amazon Cognito 需要具有您的权限。要授予该权限,您可以创建 Amazon Identity and Access Management (IAM) 角色。在 Amazon Cognito 控制台的 MFA and verifications(MFA 和验证)选项卡下,选择 Create role(创建角色)。