我有一个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代码中找到方法。
答案 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