首页 > 解决方案 > AWS Cognito - 如何确定用户是否使用电子邮件或电话号码注册

问题描述

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

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

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

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

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

标签: amazon-web-servicesamazon-cognito

解决方案


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

以下属性说明了用户注册或验证的媒介,

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

希望能帮助到你。


推荐阅读