获取用户属性 AWS Amplify iOS SDK

Get user attributes AWS Amplify iOS SDK

我正在使用 SDK Amplify 构建一个 iOS 应用程序,因此我的用户已在 AWS 上注册。

我的签名 in/sign 已经正常工作,但问题是使用最新版本的 SDK 我完全不知道如何获取注册用户的属性,例如他的姓氏,电子邮件地址等...

有了这个新的 SDK,一切似乎都可以解决 AWSMobileClientclass 但我从这个 class 中看不到任何东西可以帮助我得到我想要的东西。

official documentation 内容贫乏,没有涵盖甚至没有指出我的用例。

如果有人能给我一些提示甚至一些好的资源,我将非常感激!

初始版本中缺少该方法,后来添加了该方法。您可以在最新的 SDK 版本 2.8.x:

中使用具有以下 API 的 getUserAttributes
public func getUserAttributes(completionHandler: @escaping (([String: String]?, Error?) -> Void))

您可以在这里找到源代码:

https://github.com/aws-amplify/aws-sdk-ios/blob/master/AWSAuthSDK/Sources/AWSMobileClient/AWSMobileClientExtensions.swift#L532

谢谢, 洛汗

嗨,YoanGJ 和未来的客人,

根据您的评论,您正在寻找一些示例代码。

    AWSMobileClient.sharedInstance().getUserAttributes { (attributes, error) in
            if let attributes = attributes {
                XCTAssertTrue(attributes.count == 3, "Expected 3 attributes for user.")
                XCTAssertTrue(attributes["email_verified"] == "false", "Email should not be verified.")
            }else if let error = error {
                XCTFail("Received un-expected error: \(error.localizedDescription)")
            }
            getAttrExpectation.fulfill()
}

此摘录显示了如何调用 getUserAttributes,它来自发现的集成测试 here

备注:

确保您在 Cognito 用户池 App 客户端 中配置了相应的属性读写权限,以使用 getUserAttributes

配置用户池中的属性读写权限,

User pool -> General settings -> App clients -> Choose your app client -> Show details -> Set attribute read and write permissions

谢谢!