如何使用 aws-android-sdk 在用户池中获取自定义属性

问题描述 投票:0回答:6

我可以使用 aws-android-sdk 连接到 aws 用户池。我可以获取标准属性,例如电子邮件、名字等...但不可能获取自定义属性。 这是使用的功能:

GetDetailsHandler detailsHandler = new GetDetailsHandler() {
        @Override
        public void onSuccess(CognitoUserDetails cognitoUserDetails) {
            // Extract user details
        }

        @Override
        public void onFailure(Exception exception) {
        }
    };
amazon-cognito
6个回答
4
投票

添加到@Sergey Kovalev

cognitoUserDetails
CognitoUserAttributes
CognitoUserSettings

cognitoUserDetails.getAttributes(); // returns UserAttributes 
cognitoUserDetails.getSettings(); //returns UserSettings

您必须再次调用 getAttributes() 才能获取哈希映射属性值。

要检索

custom:preferred_name
,请使用以下代码。

Map mDetails = cognitoUserDetails.getAttributes().getAttributes();
String name = mDetails.get("custom:preferred_name").toString();

检查 AWS 用户池控制台 > 池详细信息以清楚地了解属性名称。

Required attributes name, phone_number
Alias attributes preferred_username
Custom attributes custom:company, custom:location

我在Android中使用过这个。


2
投票

您必须将自定义属性标记为可读。见下文: https://forums.aws.amazon.com/thread.jspa?threadID=248330



0
投票

基本上,在经过身份验证的用户(CognitoUser 对象)上使用 Cognito,您可以调用检索 (getUserAttributes) 和更新属性 (updateAttributes) 的方法。请注意,如果您定义了自定义属性(例如 Preferred_name),则在使用它时需要引用如下内容:

custom:preferred_name

0
投票

我在读取/写入自定义属性时遇到了麻烦,直到我删除了用户池并在创建新池时创建了属性(而不是像我对原始池所做的那样)。


0
投票

我必须在应用程序客户端注册>属性读写权限下启用我的自定义属性

© www.soinside.com 2019 - 2024. All rights reserved.