Cognito 通过用户名获取用户

Cognito get user by username

我有一个 Web angular 前端和 API 网关,受 Cognito 和 Lambda 保护,用于其他业务用例。登录和授权工作正常。我正在使用 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 代码中找到方法。

使用AWSCognitoIdentityProvider

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

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

还有很多其他功能,比如列出所有 Cognito 用户,可以做到:

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