首页 > 解决方案 > AWS Cognito 更改电子邮件 - 更新前需要验证

问题描述

我将用户池设置为使用电子邮件作为用户标识符(也配置为需要电子邮件验证)。每个主要操作/流程(登录、注册、更改密码、重置密码)似乎都可以正常工作且符合预期。

一件没有像人们期望的那样工作的重要事情是更改电子邮件流:

当请求更改电子邮件时,Cognito 会按预期将验证码发送到新电子邮件,但它也会在验证之前将电子邮件更新为新值。

这在 f.ex. 时会导致问题:新电子邮件输入错误(因此验证码永远不会到达)并且用户忘记了密码。似乎没有办法从中恢复过来。我是否遗漏、配置错误或滥用了某些东西?我做了一个最低限度的用户池定制(可能不区分大小写)。

AWS 允许在验证之前更改电子邮件的原因是什么(即使 Cognito 在注册期间实际上需要在创建帐户之前进行验证)?

是否缺少一些用户池配置设置(或 Lamba)或本地 SDK 设置?

顺便说一句:我使用AWSMobileClientiOS SDK 作为客户端,但这可能无关紧要(?)。

标签: amazon-cognitoaws-userpools

解决方案


这是 Cognito 中的一个错误,等待解决 3 年多。许多人为这个问题找到的解决方案是创建自己的验证系统。

有关更多详细信息,请参阅:https ://github.com/aws-amplify/amplify-js/issues/987


推荐阅读