我在AWS Cognito用户池中导入了一个用户的csv文件。用户具有电子邮件地址,其email_verified属性已选中为TRUE,并且phone_verified属性已选中为FALSE。导入作业成功,但是没有电子邮件通过重置代码自动发送给用户。我查看了AWS文档,并指出:
为了让用户重置密码,他们必须拥有经过验证的电子邮件或电话号码。 Amazon Cognito会将包含重置密码的邮件发送到.csv文件中指定的电子邮件或电话号码。如果消息发送到电话号码,则通过SMS发送。
这是用户导入角色的问题吗?我正在使用由导入作业自动创建的角色。
这是我的csv,只是一个例子:
cognito:用户名,姓名,GIVEN_NAME,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不允许密码导入。为此,您需要为RESET_REQUIRED
指定true。
如果您的用户数量较少,则可以通过Web控制台重置用户密码:单击用户,该选项位于顶部。或者,您可以按照here所述使用AWS CLI。
重置密码如果您有大量用户并且您不想按“重置密码”(显然),则需要有一个Web应用程序/ API来为您执行此操作。因为每次用户想要重置密码时,她都会从Cognito获得确认码。您需要有一个工作流程。
完成上述工作流程后,您需要使用Cognito API获取用户名列表,将其放入List中,然后逐个发送请求。
另外,在Python中你可以使用Boto,阅读有关reseting user passwords as an admin的内容。