amazon-web-services - 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
解决方案
首先,为什么你制作了cognito:mfa_enabled
用户的手机却是未经验证的?
所有用户都需要设置他们的密码,因为 Cognito 不允许密码导入。为此,您需要将 true 分配给RESET_REQUIRED
.
如果您的用户数量较少,您可以通过 Web 控制台重置用户密码:单击用户,选项位于顶部。或者,您也可以使用此处所述的 AWS CLI 。
重置密码 如果您有大量用户并且您不想按“重置密码”(显然),您需要有一个 Web 应用程序/API 来为您执行此操作。因为每次用户想要重置密码时,她都会从 Cognito 那里得到一个确认码。你需要有一个工作流程。
完成上述工作流程后,您需要使用 Cognito API 获取用户名列表,将其放入 List 中,然后逐个发送请求。
此外,在 Python 中,您可以使用 Boto,阅读有关以管理员身份重置用户密码的信息。
推荐阅读
- javascript - 在 React 中将所有元素保存在对象数组中的方法
- java - mockserver-netty 测试不起作用
- opengl - 如何在 GLFW 窗口中以固定 FPS 渲染
- css - 一个元素的位置是绝对的,另一个的位置是相对的,哪个是上
- javascript - 如何将字符串转换为日期并在 JavaScript 中设置默认时区
- javascript - 使用 d3 自定义气泡位置
- config - HtmlPurifier - 不断删除我的表格 - 什么是正确的配置?
- c++ - 从可调用可变元组中的函数结果创建元组
- go - 如果在恐慌之后放置 Golang 延迟不起作用?
- c# - 调用 nuGet 包中的代码时,GDI+ 中发生一般错误