[英]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.