AWS iOS Cognito-如何检查用户池中的用户?

AWS iOS Cognito-如何检查用户池中的用户?,ios,swift,amazon-web-services,Ios,Swift,Amazon Web Services,我刚刚开始与AWS合作,学习AWS。我正在使用AWS Mobile Hub中的服务,目前已设置了登录和注册方法 一切正常,现在我正在处理忘记密码和更新密码 问题: 问题是,AWS设置忘记密码的方式是: 您首先输入用户名,然后在用户输入用户名后,AWS通过SMS向关联的电话号码发送验证码 使用该用户名 这是一个问题,因为这意味着任何人都可以输入任何用户名,并会发送一条短信,导致我的短信付款增加,老实说,这看起来很草率 我想做的是: 用户输入用户名后,他们必须输入与该帐户关联的电话号码 然后,如果匹

我刚刚开始与AWS合作,学习AWS。我正在使用AWS Mobile Hub中的服务,目前已设置了登录和注册方法

一切正常,现在我正在处理忘记密码和更新密码

问题: 问题是,AWS设置忘记密码的方式是:

您首先输入用户名,然后在用户输入用户名后,AWS通过SMS向关联的电话号码发送验证码 使用该用户名

这是一个问题,因为这意味着任何人都可以输入任何用户名,并会发送一条短信,导致我的短信付款增加,老实说,这看起来很草率

我想做的是:

  • 用户输入用户名后,他们必须输入与该帐户关联的电话号码
  • 然后,如果匹配,它会发送短信
  • 问题
    • 如何检查用户池中是否存在用户
    • 如果是,我如何获取与电话号码关联的用户属性,以检查它是否与用户输入的电话号码匹配
    • 这可能吗?我甚至可以获得未登录用户的凭据吗

    提前谢谢

    Cognito用户池当前不允许您在用户未登录并获取访问令牌的情况下获取该用户的属性(如电话号码)


    管理API可以执行您正在查找的查找,但不应从客户端调用它们,因为这意味着您必须嵌入凭据。如果这是您必须拥有的,您可以通过将其包装在API网关或类似的内容中,然后从您的客户端调用来保护这些凭据。

    以下是您应该如何做到的: 1) 使用APIGateway创建web API。理想情况下,您希望使用API密钥限制访问,您应该将其与应用程序捆绑在一起。 2) 将POST方法连接到Lambda函数,该函数将 (a) 调用管理功能,执行必要的检查(指定的电话号码是否正确等)。 (b) 发出客户端版本的密码重置,这将触发SMS代码的发送