Cognito - 注册请求不使用给定的用户名,而是使用 UUID

Tom*_*mer 6 amazon-web-services amazon-cognito aws-cognito

不确定缺少什么,但是当我使用注册请求时,在我的 cognito 用户池中创建了一个用户,该用户具有 UUID 用户名(实际上是子属性值)而不是电子邮件。

val signup = new SignUpRequest()
  .withUsername(user.email)  // <- cognito ignore this, and use a UUID for username
  .withClientId(clientId)
  .withSecretHash(secret)
  .withPassword(user.password)
  .withUserAttributes(List(email, givenName, familyName))
Run Code Online (Sandbox Code Playgroud)

查看文档,当电子邮件的值无效时使用 UUID。

我使用的电子邮件类似于:roc.roc+test@foo.com(这是一个有效的电子邮件)

顺便说一句,当我使用AdminCreateUserRequestapi 时,它会按预期使用电子邮件作为用户名创建。

val createUser =
  new AdminCreateUserRequest()
    .withUsername(user.email)
    .withUserPoolId(cognitoUserPoolId)
    .withUserAttributes(attributes)

client.adminCreateUser(createUser)
Run Code Online (Sandbox Code Playgroud)

编辑:现在有快照:

这是使用注册api - 图片

这是使用创建用户 api:

图片

只有注册不起作用,我错过了什么?

Ion*_*ian 8

你应该看看这个:http : //docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases-settings-option-2

如果您使用选项 2,在 SignUp 调用中,用户名将替换为 sub。