Cognito按用户名获取用户

时间:2017-09-13 05:13:05

标签: java aws-lambda amazon-cognito aws-cognito

我有一个Web角度前端,一个受Cognito和Lambda保护的API网关用于其他业务用例。登录和授权工作正常。我正在使用AWS Javascript SDK进行授权。像https://s3.amazonaws.com/solutions-reference/mobile-backend/latest/mobile-app-backend.pdf

这样的东西

在我的lambda中,我需要通过传递我的Lambda中的电子邮件ID来获取其他用户的信息,如名字,第二名,DOB等....(电子邮件ID是Cognito中的必填字段)。这个lambda从前端动作开始。想象一下,查看一些其他用户的个人资料。

我相信这是API http://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html,但我无法在Java代码中找到方法。

1 个答案:

答案 0 :(得分:1)

使用AWSCognitoIdentityProvider

AWSCognitoIdentityProvider client = AWSCognitoIdentityProviderClientBuilder.standard()
         .withCredentials(awsCredentialsProvider).build();

AdminGetUserRequest adminGetUserRequest = new AdminGetUserRequest()
                        .withUserPoolId("XXXXXXXXXXX")
                        .withUsername("userName");
AdminGetUserResult adminGetUserResult = client.adminGetUser(adminGetUserRequest);

还有许多其他功能,例如列出所有认知用户,可以这样做:

ListUsersRequest listUserRequest = new 
ListUsersRequest().withUserPoolId("XXXXXXXXX");
ListUsersResult listUsersResult = client.listUsers(listUserRequest);

Maven是:

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-cognitoidp</artifactId>
        <version>${aws-cloud-version}</version>
    </dependency>

请确保您的lambda角色有权使用Cognito,如cognito-idp:AdminGetUser