Java 我可以使用ListUsers API通过用户查询Cognito用户池吗';乌伊德?
cognito用户池的文档可以在这里找到:Java 我可以使用ListUsers API通过用户查询Cognito用户池吗';乌伊德?,java,amazon-web-services,aws-cognito,Java,Amazon Web Services,Aws Cognito,cognito用户池的文档可以在这里找到: 在这种情况下,它们不会说明是否可以通过自动生成的子属性(uuid)查询用户。它明确表示不能通过自定义属性搜索用户,但sub/uuid不是自定义属性。奇怪的是,在可搜索属性列表中,sub/uuid不是其中之一。当然,尽管您可以通过用户的UUID查找用户,但这将如何实现???您知道,我使用过COgnito,但从未需要通过sub(或用户名以外的其他参数)进行查找。我研究了它,因为您当然可以,但它不是很清楚(就像他们的许多文档一样)。这是我看到的,你可以试试
在这种情况下,它们不会说明是否可以通过自动生成的子属性(uuid)查询用户。它明确表示不能通过自定义属性搜索用户,但sub/uuid不是自定义属性。奇怪的是,在可搜索属性列表中,sub/uuid不是其中之一。当然,尽管您可以通过用户的UUID查找用户,但这将如何实现???您知道,我使用过COgnito,但从未需要通过sub(或用户名以外的其他参数)进行查找。我研究了它,因为您当然可以,但它不是很清楚(就像他们的许多文档一样)。这是我看到的,你可以试试。。。希望它能帮助人类
// the imported ListUsersResult is...
import com.amazonaws.services.cognitoidp.model.ListUsersRequest;
import com.amazonaws.services.cognitoidp.model.ListUsersResult;
// class var
protected final AWSCognitoIdentityProviderClient identityUserPoolProviderClient;
// omitted stuff...
// initialize the Cognito Provider client. This is used to talk to the user pool
identityUserPoolProviderClient = new AWSCognitoIdentityProviderClient(new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY)); // creds are loaded via variables that are supplied to my program dynamically
identityUserPoolProviderClient.setRegion(RegionUtils.getRegion(USER_POOL_REGION)); // var loaded
// ...some code omitted
ListUsersRequest listUsersRequest = new ListUsersRequest();
listUsersRequest.withUserPoolId(USER_POOL_ID); // id of the userpool, look this up in Cognito console
listUsersRequest.withFilter("sub=xyz"); // i THINK this is how the Filter works... the documentation is terribad
// get the results
ListUsersResult result = identityUserPoolProviderClient.listUsers(listUsersRequest);
List<UserType> userTypeList = result.getUsers();
// loop through them
for (UserType userType : userTypeList) {
List<AttributeType> attributeList = userType.getAttributes();
for (AttributeType attribute : attributeList) {
String attName = attribute.getName();
String attValue = attribute.getValue();
System.out.println(attName + ": " + attValue);
}
}
你知道,我使用过COgnito,但从不需要通过sub(或用户名以外的其他参数)进行查找。我研究了它,因为您当然可以,但它不是很清楚(就像他们的许多文档一样)。这是我看到的,你可以试试。。。希望它能帮助人类
// the imported ListUsersResult is...
import com.amazonaws.services.cognitoidp.model.ListUsersRequest;
import com.amazonaws.services.cognitoidp.model.ListUsersResult;
// class var
protected final AWSCognitoIdentityProviderClient identityUserPoolProviderClient;
// omitted stuff...
// initialize the Cognito Provider client. This is used to talk to the user pool
identityUserPoolProviderClient = new AWSCognitoIdentityProviderClient(new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY)); // creds are loaded via variables that are supplied to my program dynamically
identityUserPoolProviderClient.setRegion(RegionUtils.getRegion(USER_POOL_REGION)); // var loaded
// ...some code omitted
ListUsersRequest listUsersRequest = new ListUsersRequest();
listUsersRequest.withUserPoolId(USER_POOL_ID); // id of the userpool, look this up in Cognito console
listUsersRequest.withFilter("sub=xyz"); // i THINK this is how the Filter works... the documentation is terribad
// get the results
ListUsersResult result = identityUserPoolProviderClient.listUsers(listUsersRequest);
List<UserType> userTypeList = result.getUsers();
// loop through them
for (UserType userType : userTypeList) {
List<AttributeType> attributeList = userType.getAttributes();
for (AttributeType attribute : attributeList) {
String attName = attribute.getName();
String attValue = attribute.getValue();
System.out.println(attName + ": " + attValue);
}
}
非常感谢您的回答,它似乎非常有用,并且符合他们的文档。奇怪的是,虽然我成功地导入了ListUsersRequest库,但我的eclipse告诉我,withFilter不是ListUsersRequest类的方法,这是胡说八道。我已经确认我正在使用正确的ListUsersRequest类并从正确的位置导入它,知道它为什么不工作吗?我还想知道这个代码中的类标识是什么?我查看了AmazonCongnitoIdentityClient类的文档,但它没有方法listUsers,所以我认为不是这样。我使用gradle导入aws cognito。。。这是我使用的lib。有2个“标识”和“idp”。使用“idp”。标识用于用户标识池“idp”“用于用户池。。。事情不止这些,但这是一条很好的经验法则不要将此选项用于ListUsers编译组:“com.amazonaws”,名称:“aws java sdk cognitoidentity”,版本:“1.11.56”//将此选项用于ListUsers。。。编译组:'com.amazonaws',名称:'aws java sdk cognitoidp',版本:'1.11.56'非常感谢您的回答,它似乎非常有用,并且与他们的文档一致。奇怪的是,虽然我成功地导入了ListUsersRequest库,但我的eclipse告诉我,withFilter不是ListUsersRequest类的方法,这是胡说八道。我已经确认我正在使用正确的ListUsersRequest类并从正确的位置导入它,知道它为什么不工作吗?我还想知道这个代码中的类标识是什么?我查看了AmazonCongnitoIdentityClient类的文档,但它没有方法listUsers,所以我认为不是这样。我使用gradle导入aws cognito。。。这是我使用的lib。有2个“标识”和“idp”。使用“idp”。标识用于用户标识池“idp”“用于用户池。。。事情不止这些,但这是一条很好的经验法则不要将此选项用于ListUsers编译组:“com.amazonaws”,名称:“aws java sdk cognitoidentity”,版本:“1.11.56”//将此选项用于ListUsers。。。编译组:“com.amazonaws”,名称:“aws java sdk CognotidP”,版本:“1.11.56”