【问题标题】:Cognito get user by usernameCognito 通过用户名获取用户
【发布时间】:2018-02-21 16:19:25
【问题描述】:

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

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 请注意,属性的toString 方法将值显示为***Sensitive Data Redacted*** 因此,例如,在Kotlin 中,要打印电子邮件,请使用println(adminGetUserResult.userAttributes.filter{ it.name == "email"}[0].value) 而不是println(adminGetUserResult.userAttributes.filter{ it.name == "email"}[0].toString())
    • 我们还需要使用 withCredentials(awsCredentialsProvider) 传递凭据吗?如果我们从 lambda 访问 cognito-idp:AdminGetUser?我收到了 UnrecognizedClientException。我认为这与我从 lambda 生成的环境变量中传递凭据有关?
    猜你喜欢
    • 2020-10-07
    • 2022-06-14
    • 2020-04-21
    • 1970-01-01
    • 2018-11-01
    • 2012-01-17
    • 2012-09-18
    • 1970-01-01
    • 2021-12-08
    相关资源
    最近更新 更多