Cognito - 导入用户后未发送电子邮件

Posted

技术标签:

【中文标题】Cognito - 导入用户后未发送电子邮件【英文标题】:Cognito - Emails not being sent after importing users 【发布时间】:2019-02-12 10:54:09 【问题描述】:

我已导入一个 csv 文件,其中包含 AWS Cognito 用户池中的用户。用户的电子邮件地址的 email_verified 属性检查为 TRUE,phone_verified 属性检查为 FALSE。导入作业成功,但是不会自动向用户发送带有重置代码的电子邮件。我查看了 AWS 文档并指出:

为了让用户重置密码,他们必须拥有经过验证的电子邮件或电话号码。 Amazon Cognito 将包含重置密码代码的消息发送到 .csv 文件中指定的电子邮件或电话号码。如果消息发送到电话号码,则通过 SMS 发送。

这会是用户导入角色的问题吗?我正在使用由导入作业自动创建的角色。

这是我的 csv,只是一个例子:

cognito:用户名、姓名、给定名称、family_name、middle_name、昵称、preferred_username、个人资料、图片、网站、电子邮件、email_verified、性别、生日、区域信息、区域设置、phone_number、phone_number_verified、地址、updated_at、cognito:mfa_enabled

John,John,John,Doe,,,,,,,johndoe@example.com,TRUE,,,,,,FALSE,,,FALSE

【问题讨论】:

【参考方案1】:

首先,为什么你发了cognito:mfa_enabled,但是用户的手机是未经验证的?

所有用户都需要设置密码,因为 Cognito 不允许密码导入。为此,您需要将 true 分配给 RESET_REQUIRED

如果您的用户数量较少,您可以通过 Web 控制台重置用户密码:单击用户,选项位于顶部。或者,您可以按照here 所述使用 AWS CLI。

重设密码 如果您有大量用户并且您不想按“重置密码”(显然),您需要有一个 Web 应用程序/API 来为您执行此操作。因为每次用户想要重置密码时,她都会从 Cognito 那里得到一个确认码。您需要有适当的工作流程。

上述工作流程运行后,您需要使用 Cognito API 获取用户名列表,将其放入 List 中,然后逐个发送请求。

另外,在 Python 中,您可以使用 Boto,阅读有关 reseting user passwords as an admin 的信息。

【讨论】:

【参考方案2】:

只是把它放在这里;导入创建作业不会发送电子邮件通知。 您已经实现了实现目标的好方法。

【讨论】:

以上是关于Cognito - 导入用户后未发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

AWS Cognito - 创建用户而不向他们发送验证电子邮件

AWS CloudFormation 脚本失败 - 不允许 Cognito 使用您的电子邮件身份

如何防止 cognito 发送自动电子邮件?

成功查询后未显示成功消息,但表单数据仍然发送到DB

AWS Cognito 登录 iOS (swift)

用户注册后如何在 aws cognito 中自动验证电子邮件。稍后状态后在 Cognito 中验证电子邮件