AWS Cognito - 如何确定用户是否使用电子邮件或电话号码注册

Dar*_*ian 5 amazon-web-services amazon-cognito

我们已经实现了此处所述的自定义身份验证触发器。我们设置了用户池,让用户可以使用电话号码或电子邮件登录。

我遇到的问题是确定用户登录的媒介(电子邮件或电话号码)。我正在使用CognitoIdentityServiceProvider#signUp来注册/登录用户。

当观察传递到定义/创建/验证身份验证触发器的事件时,似乎没有传递用于启动身份验证流程的用户名。仅传递用户属性,在我的情况下,可以是电子邮件或电话。我需要知道它是哪一个,以便我知道是否需要通过短信或电子邮件发送代码。

我尝试添加一个带有前缀的自定义 UserAttribute custom:,这样我就可以执行类似的操作custom:preferredAuthMedium,但这似乎不会填充用户的 UserAttributes 映射,即使文档说它应该这样做。

是否有标准方法可以使用自定义身份验证流程来执行此操作?

Kan*_*yan -2

不同的媒介需要自己确认。

以下属性表示用户注册或验证的媒介,

  • phone_number_verified是电话号码。
  • email_verified用于电子邮件。

希望能帮助到你。