amazon-web-services - AWS Cognito - 如何确定用户是否使用电子邮件或电话号码注册
问题描述
我们已经实现了自定义身份验证触发器,如此处所述。我们设置了用户池,让用户可以使用电话号码或电子邮件登录。
我遇到的问题是确定用户登录的媒介(电子邮件或电话号码)。我正在使用CognitoIdentityServiceProvider#signUp来注册/登录用户。
当观察传递给定义/创建/验证身份验证触发器的事件时,似乎没有通过用户名用于启动身份验证流程的内容。只有用户属性在我的情况下可能是电子邮件或电话. 我需要知道它是哪一个,所以我知道我是否需要通过 SMS 或电子邮件发送代码。
我试图添加一个带有前缀的自定义 UserAttributecustom:
以便我可以执行类似的操作custom:preferredAuthMedium
,但这似乎并没有填充用户的 UserAttributes 映射,即使文档说它应该这样做。
是否有使用自定义身份验证流程执行此操作的标准方法?
解决方案
不同的媒介需要自己的确认。
以下属性说明了用户注册或验证的媒介,
- phone_number_verified是电话号码。
- email_verified用于电子邮件。
希望能帮助到你。
推荐阅读
- c# - 尝试遍历 IEnumerable 时,指定的强制转换无效
在 C# 中 - python - Python 中的 Sql 查询不返回任何内容
- javascript - JavaScript:将数组向左旋转,然后向右旋转给定的旋转次数
- node.js - 带有net.socket的Nodejs反向shell
- sql - 如何编写一个 SQL 查询来显示与特定产品在同一购物车中销售的前 5 件商品?
- react-native - react-native-webrtc 无法创建 RTCPeerConnection
- ruby-on-rails - 在 rspec 的上下文中循环不会正确设置 let 变量
- vb.net - 控制在其位置不断变化时闪烁
- haskell - 我可以编译这个模棱两可的类型函数吗?
- java - 处理 Firestore 数据库对象