【问题标题】:How to create AWS Admin User with Unconfirmed state如何创建未确认状态的 AWS 管理员用户
【发布时间】:2020-08-02 03:37:00
【问题描述】:

我正在使用 AWS cognito API 在池中创建用户。正在池中成功创建用户。 以下是该代码。但是这段代码创建了具有 FORCE_CHANGE_PASSWORD 状态的用户,但我想创建处于 UNCONFIRMED 状态的用户。有人可以帮我吗?

AdminCreateUserRequest cognitoRequest =
        new AdminCreateUserRequest().withUserPoolId(id)
                .withUsername(r.getEmail())
                .withTemporaryPassword(r.getPassword().trim())
                .withUserAttributes(new AttributeType().withName(Constants.EMAIL).withValue(r.getEmail().trim()))
                .withUserAttributes(new AttributeType().withName(Constants.EMAI_VERIFIED).withValue("false"))
                .withUserAttributes(new AttributeType().withName(Constants.GIVEN_NAME).withValue(r.getFirstName().trim()))
                .withUserAttributes(new AttributeType().withName(Constants.FAMILY_NAME).withValue(r.getLastName().trim()));

【问题讨论】:

  • 这能回答你的问题吗? How to change User Status FORCE_CHANGE_PASSWORD?
  • 我认为您可能必须使用永久标志调用adminSetUserPassword(如this answer,但在上面的链接问题中也有一些其他解决方案。adminCreateUser docs 说“在任何一种情况下,用户都将处于 FORCE_CHANGE_PASSWORD 状态,直到他们登录并更改密码”,所以我认为仅通过一个 API 调用就不可能做到这一点。
  • 是真的吗,boto3.client('cognito-idp') 的工作方式不同,因为当我使用这个 py 脚本时,它会在 UNCONFIRMED 中创建用户,我期待与 java api 有相同的行为。
  • 听上去很像,不过你可以去源码看看。
  • 我认为 AWS 在技术方面没有偏见,它的特点是 AWS 支持所有技术客户。

标签: amazon-cognito


【解决方案1】:

您可以使用 SignUpRequest 创建具有未确认状态的用户

SignUpRequest request = new SignUpRequest().withClientId(clientId)
                .withUsername(userSignUpRequest.getUsername()).withPassword(userSignUpRequest.getPassword())
                .withUserAttributes(emailAttr, groupAttr);
        return cognitoClient.signUp(request)

注册后,用户将在注册时提到的电子邮件中获得代码。您可以使用来自用户的代码作为输入的不同请求来确认用户注册。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 2015-04-21
    • 2011-05-17
    • 2019-12-19
    • 2013-03-15
    相关资源
    最近更新 更多