首页 > 解决方案 > Cognito - 导入用户后未发送电子邮件

问题描述

我在 AWS Cognito 用户池中导入了一个包含用户的 csv 文件。用户的电子邮件地址的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

标签: amazon-web-servicesamazon-cognito

解决方案


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

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

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

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

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

此外,在 Python 中,您可以使用 Boto,阅读有关以管理员身份重置用户密码的信息。


推荐阅读