我正在测试Cognito以替换我们现有的身份验证代码,并发现了一个错误。我有一个用户池,并实现了用户迁移lambda来测试迁移过程。用户池已设置为使用电子邮件作为用户名。
从我使用现有凭据登录的客户端中,用户迁移lambda执行以下操作:
event['response']['userAttributes'] = {
'preferred_username': "migrated guy"
}
event["finalUserStatus"] = "CONFIRMED"
event["messageAction"] = "SUPPRESS"
return event
登录成功,并且我的用户已迁移到Cognito。但是,用户会立即收到主题为“您的临时密码”和正文为“您的用户名是*****@******.com,临时密码是********”的电子邮件并通过电子邮件发送。电子邮件中的临时密码是Cognito生成的密码,而不是输入/迁移的密码。随后,我可以使用原始密码再次登录,而电子邮件中的密码不起作用。我已经多次尝试了相同的结果。无论迁移的密码是否满足我的密码强度要求,都会发生这种情况。
是否至少有一种避免发送此错误电子邮件的方法?我在做错什么吗?
答案 0 :(得分:1)
如果要解决此问题,则需要在finalUserStatus
而不是messageAction
上设置event.response
和event
:
event.response.finalUserStatus = "CONFIRMED";
event.response.messageAction = "SUPPRESS";