Cognito 通过用户名获取用户

par*_*upk 3 java amazon-cognito aws-lambda aws-cognito

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

在我的 lambda 中,我需要通过传递我在 Lambda 中拥有的电子邮件 ID 来获取其他用户信息,例如名字、第二名、出生日期等。(电子邮件 ID 是 Cognito 中的必填字段)。这个 lambda 是从前端操作中启动的。想象一下查看其他用户的个人资料类型的场景。

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

par*_*upk 5

AWSCognitoIdentityProvider

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

AdminGetUserRequest adminGetUserRequest = new AdminGetUserRequest()
                        .withUserPoolId("XXXXXXXXXXX")
                        .withUsername("userName");
AdminGetUserResult adminGetUserResult = client.adminGetUser(adminGetUserRequest);
Run Code Online (Sandbox Code Playgroud)

还有许多其他功能,例如列出所有 cognito 用户,可以完成:

ListUsersRequest listUserRequest = new 
ListUsersRequest().withUserPoolId("XXXXXXXXX");
ListUsersResult listUsersResult = client.listUsers(listUserRequest);
Run Code Online (Sandbox Code Playgroud)

Maven是:

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-cognitoidp</artifactId>
        <version>${aws-cloud-version}</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

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