更改电子邮件后,用户可以在 AWS Cognito 中验证电子邮件之前登录

问题描述 投票:0回答:1

我在移动应用程序中使用 AWS Cognito 来允许用户注册和登录。我使用电子邮件作为用户名。当用户注册时,他们会收到带有验证链接的电子邮件。如果用户在单击验证码之前尝试登录,则会引发错误。 我实现了一个允许用户更改电子邮件的功能。该功能按预期工作:用户在新电子邮件中收到代码,并且在提供代码之前,在用户池内电子邮件被标记为未验证。问题是,由于用户使用电子邮件作为用户名,因此当更改电子邮件时,即使没有验证,新电子邮件也可以用于登录。它是否正确?我期望的行为是用户只有在验证新电子邮件后才能登录。

amazon-web-services amazon-cognito
1个回答
0
投票

这个问题很老了,但现在有了答案。您可以保留旧值,直到用户验证新值。

复制类似问题的答案:https://stackoverflow.com/a/72794530/2727462

Cognito 团队终于解决了这个问题,但您需要选择正确的行为。

来自开发者指南:

Amazon Cognito 还可以要求您的用户验证新值 在 Amazon Cognito 更新属性之前。当你有这样的要求时 您的用户首先验证新值,他们可以使用原始值 用于登录和接收消息,直到验证新值。

要选择加入此行为,请按照该页面上的步骤操作:

  1. 登录 Amazon Cognito 控制台。如果出现提示,请输入您的 AWS 凭证。

  2. 在导航窗格中,选择用户池,然后选择用户池 你想编辑。

  3. 注册体验选项卡中,选择属性下的编辑 验证和用户帐户确认

  4. 选择 更新时保持原始属性值处于活动状态 待定

  5. 更新挂起时的活动属性值下,选择 您希望用户在亚马逊之前验证的属性 Cognito 更新值。

  6. 选择保存更改

这将启用用户池的默认行为:该属性将保留其旧值,直到用户实际验证新值,此时 Cognito 会将值更新为新值。

© www.soinside.com 2019 - 2024. All rights reserved.