2017-04-19 43 views
0

cognitoユーザー・プールのドキュメントはここで見つけることができます。この中ListUsers APIを使用して、ユーザーのUuidでCognitoユーザープールを照会することはできますか?

http://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html

彼らはあなたがUUIDで自動的に生成されたサブ属性によって、ユーザーを照会することができるかどうかを言うことはありません。これは、カスタム属性でユーザーを検索することはできないが、sub/uuidはカスタム属性ではないことを明示的に示しています。奇妙なことに、検索可能な属性のリストでは、sub/uuidはその1つではありません。確かにUUIDでユーザーを見ることはできますが、これはどうしたらいいですか?

答えて

1

あなたは知っていますが、私はCOgnitoを使用しましたが、サブ(またはユーザ名以外の他のパラメータ)で検索する必要はありませんでした。確かにできるので、私はそれを調べましたが、それは非常に明確ではありません(多くの文書のように)。ここで私はあなたが試みることができることを見ました...それが人を助けることを願っています。

 // 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); 
     } 
    } 

は、ユーザー名を持っている場合は、この

// build the request 
    AdminGetUserRequest idRequest = new AdminGetUserRequest(); 
    idRequest.withUserPoolId(USER_POOL_ID); 
    idRequest.withUsername(username); 

    // call cognito for the result 
    AdminGetUserResult result = identityUserPoolProviderClient.adminGetUser(idRequest); 
    // loop through results 
+0

のようなユーザーは、この答えをどうもありがとうございます得ることができる、それは非常に有用とそのドキュメントに沿っているようです。不思議なことに、私はListUsersRequestライブラリを正常にインポートしていますが、私のEclipseは.withFilterはListUsersRequestクラスのメソッドではないと言っています。私は正しいListUsersRequestクラスを使用して正しい場所からインポートしていると確信しています。それがうまくいかない理由は何ですか? – HelloCoding

+0

また、私はどのようなクラスidentityUserPoolProviderClientがこのコードにあるのだろうか?私はAmazonCognitoIdentityClientクラスのドキュメントをチェックしましたが、メソッドlistUsersはありませんでしたので、それはそれだとは思いません。 – HelloCoding

+0

こんにちは、うれしかったです。ここに答えに追加されたいくつかの情報があります... – Matt

関連する問題