簡體   English   中英

在 ListUsersRequest 中設置 attributesToGet(): Java

[英]Set attributesToGet() in ListUsersRequest : Java

我只想從 cognito 中獲取用戶名屬性。

當我沒有在 attributesToGet() 中設置任何內容時,我能夠成功獲取記錄。 但是當我嘗試設置任何屬性時,出現錯誤: AwsErrorDetails(errorMessage=一個或多個請求的屬性不存在。,errorCode=InvalidParameterException,serviceName=CognitoIdentityProvider)

下面是屬性設置為用戶名的代碼

 String emailId = "xyz@gmail.com";
 ListUsersRequest listUsersRequest = ListUsersRequest.builder()
            .userPoolId(userPoolId)
            .filter(String.format("%s = \"%s\"", "email", emailId))
            .attributesToGet(new String[]{"username"})
            .build();

        ListUsersResponse userInfo = cognitoIdentityProviderClient
            .listUsers(listUsersRequest);

下面是我的認知池標題的屏幕截圖在此處輸入圖像描述

請幫助我完成這項工作!

您嘗試獲取的屬性username不是適用的屬性列表的一部分,它是“頂級”用戶屬性並且始終存在。

當你得到一個響應時(當你沒有在attributesToGet中傳遞任何東西時你可以)你會注意到屬性列表不包含用戶名,它在外面,如本例所示:

{
  "Users": [
    {
      "Username": "johndoe",
      "Attributes": [
        { "Name": "sub", "Value": "41f3c652-6d3b-4ae5-8bad-271785f9adb5" },
        { "Name": "email_verified", "Value": "true" },
        { "Name": "name", "Value": "John Doe" },
        { "Name": "email", "Value": "johndoe@example.org" },
        { "Name": "custom:role", "Value": "administrator" }
      ],
      "UserCreateDate": "2022-06-22T11:11:40.180000+01:00",
      "UserLastModifiedDate": "2022-07-23T11:55:35.352000+01:00",
      "Enabled": true,
      "UserStatus": "RESET_REQUIRED"
    }
  ]
}

還要檢查API 參考中的 ListUsers 響應語法,其中用戶名顯示為頂級字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM