【问题标题】:AWS Cognito check and get usersAWS Cognito 检查并获取用户
【发布时间】:2017-10-03 12:54:18
【问题描述】:

我正在构建一个使用 Amazon MobileHub 的 iOS 应用程序。目前它与 Cognito 相关联,并且注册和登录流程运行良好。

我想要实现的是让一个用户能够将另一个用户添加为 朋友 可以这么说。为此,我需要检查具有特定用户名的用户是否存在,如果存在,则获取一些属性,例如该目标用户的名称。

我尝试使用 get user > get details 功能,但它给了我一个错误Authentication delegate not set

这是我使用的代码:

var pool: AWSCognitoIdentityUserPool?
let user = pool?.getUser(usernameField.text!)

self.pool = AWSCognitoIdentityUserPool.init(forKey: AWSCognitoUserPoolsSignInProviderKey)

user?.getDetails().continueWith { (task: AWSTask<AWSCognitoIdentityUserGetDetailsResponse>) -> Any? in
  if let error = task.error as NSError? {
    print("ERROR: " + error.localizedDescription)
    return ""
  }

  print(task.result)
  return ""
}

我想到的一种方法是将用户名和我想要访问的属性存储到 DynamoDB,然后在那里访问它,但这只会创建两个不必要的条目。

【问题讨论】:

  • 我知道的不够多,无法发布答案,但我敢打赌,您可以使用 cognito 池中的组和适当的 IAM 权限来执行此操作,以便用户可以互相看到

标签: ios swift amazon-web-services aws-sdk amazon-cognito


【解决方案1】:

您会遇到的问题是用户属性不公开可见。只有已登录的用户才能调用 GetUser。如果它是后端进程,您可以通过 AdminGetUser 操作执行此操作,但这看起来是客户端,所以我不建议这样做。解决这个问题的唯一真正方法是最终按照您在帖子底部的建议进行操作。

【讨论】:

    猜你喜欢
    • 2021-02-04
    • 1970-01-01
    • 2019-10-18
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 2021-05-22
    • 2018-02-27
    相关资源
    最近更新 更多