获取用户属性AWS Amplify iOS SDK

时间:2018-12-06 18:01:33

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

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

我已经可以登录/注册流程了,但是问题是,使用最新版本的SDK,我完全不知道如何获取注册用户的属性,例如其姓氏,电子邮件地址等。 ..

有了这个新的SDK,一切似乎都可以在AWSMobileClient类周围工作,但是我从此类中看不到任何东西可以帮助我获得想要的东西。

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

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

3 个答案:

答案 0 :(得分:3)

您好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的集成测试。

答案 1 :(得分:2)

该方法在初始发行版中丢失,因此已添加。您可以在最新的SDK版本2.8.x中将getUserAttributes与以下API结合使用:

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

谢谢, 罗汉

答案 2 :(得分:0)

注释:

确保已在 Cognito用户池App客户端 中配置了属性读写权限,以使用getUserAttributes访问用户属性。

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

  

用户池->常规设置->应用程序客户端->选择您的应用程序客户端   ->显示详细信息->设置属性的读写权限

enter image description here

谢谢!