Cognito-如何让用户使用电子邮件和电话号码登录

时间:2019-03-10 18:46:44

标签: aws-lambda amazon-cognito

我已将Cognito设置为同时允许电子邮件地址和电话号码。这是场景。

  • 使用电子邮件A注册用户test@test.com,并使用CognitoIdentityServiceProvider#signupusername : test@test.comUserAttributes作为电子邮件地址来自动验证电子邮件。
  • 使用电话号码123-456-7899更新用户帐户,并自动验证电话号码
  • 尝试使用123-456-7899
  • 登录
  • 代替登录当前已验证电话号码为A的用户123-456-7899,而是创建用户B

有什么方法可以让用户拥有唯一的电话号码和电子邮件,并能够同时登录?还是总是根据初始的username进行注册?

1 个答案:

答案 0 :(得分:0)

您的用户池似乎已配置了UsernameAttributes,并且您同时选择了email和phone_number作为用户名。我同意这种行为很奇怪,您最终可以拥有两个不同的用户,两个用户的电子邮件和电话号码完全相同,并且两个属性都经过验证。

您是否尝试过使用UsernameAliases配置用户池?它允许您指定3个属性(电子邮件,电话号码,preferred_username),这些属性将用作用户名别名,并且用户将能够使用其中的任何一个登录(假设已验证)。请注意,注册后他们将无法立即使用该电子邮件地址进行身份验证,因为该地址需要首先进行验证。