Cognito 在通过电话确认之前更改电话号码

hoa*_*gdv 5 amazon-web-services amazon-cognito aws-lambda

我想在phone_number用户通过电话确认之前更改用户的属性。我的流程步骤:

  1. 用户通过用户名、密码和电话号码注册

  2. 用户必须输入手机收到的确认码。在这一步用户想要更改电话号码(错误号码或更改电话...)

2.1 如果第一个电话号码错误,下一个电话号码是正确的 -> 只发送了一个确认码 -> 有效!

2.2 如果第一个电话号码和下一个电话号码正确 -> 已经发送了两个确认代码(第一个 - xxx,第二个 - yyy) -> 用户输入第二个确认代码,Cognito 会抛出CodeMismatchException: Invalid verification code provided, please try again.错误。用户输入第一个代码,用户已被确认,但在 Cognito 系统中,用户拥有的phone_number是第二个号码,并且phone_number_verifiedtrue

我过去常常adminUpdateUserAttributes更改phone_number状态为 的用户UNCONFIRMED。我打电话更改电话号码后自动发送确认码。

如何解决这个问题?

!!!更新

目前,我User can update their phone_number before they confirmed via phone从我的应用程序中删除了该功能。

我需要大约 5 天,我只想记下我的案子。

当您尝试更新phone_number(或email)属性时,Cognito 会自动向您的手机(或电子邮件)发送确认信息,这是第一个代码 - (1st - xxx),用于确认您的新属性值的代码(不用于用户确认) )。

同时,逻辑代码调用resendConfirmationCode函数,它发送第二个代码 - (2nd - yyy),这是只有第二个代码工作的主要原因(我们使用confirmSignUp函数来处理代码)。

Ion*_*ian 1

我和 behrooziAWS 都是 Cognito 团队的成员。看了你的场景后,这似乎确实是我们这边的一个错误。我会在团队内提及它,以便我们相应地优先考虑它。