未发送Cognito电子邮件验证

时间:2019-05-20 16:28:07

标签: java amazon-web-services amazon-cognito

我正在尝试使用Cognito,但似乎无法弄清楚如何使Cognito向用户发送验证电子邮件,以便他们验证其电子邮件地址。

这是在我的后端服务器中,我从那里收到了新用户的用户名,电子邮件和密码。我禁止执行消息操作,因为我不希望用户收到临时密码。相反,我想将密码设置为他们已经提供给我的密码。

AdminCreateUserRequest adminCreateUserRequest = new AdminCreateUserRequest().withUserPoolId("<user pool ID>")
                .withUsername(registerUserRequest.getUsername())
                .withUserAttributes(new AttributeType().withName("email")
                        .withValue(registerUserRequest.getEmail()), new AttributeType().withName("email_verified")
                        .withValue("false"))
                .withMessageAction(MessageActionType.SUPPRESS);
awsCognitoIdentityProvider.adminCreateUser(adminCreateUserRequest);

AdminSetUserPasswordRequest adminSetUserPasswordRequest = new AdminSetUserPasswordRequest().withUserPoolId(<user pool ID>)
                .withUsername(registerUserRequest.getUsername())
                .withPassword(registerUserRequest.getPassword())
                .withPermanent(true);
awsCognitoIdentityProvider.adminSetUserPassword(adminSetUserPasswordRequest);

但是,用户永远不会收到用来验证其电子邮件地址的电子邮件。在用户池配置中,在“您要验证哪些属性?”下选择“电子邮件”。并且我已经验证了我在SES中发送的电子邮件地址。我在这里想念东西吗?

1 个答案:

答案 0 :(得分:0)

如果您使用AdminCreateUser,该帐户将始终使用临时密码创建。

您真正想要的是Signup