AWS Cognito Workflow:使用主用户名的电子邮件别名

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

因此,我试图了解AWS Cognito,但我遇到了一些问题。

所以,现在我可以注册一个帐户,并验证并登录。简单就够了。边缘的情况是我的墙壁。

这是我到目前为止的信息:

这就是我的优势所在。

如果用户注册,但不立即验证:

  • 他们被叫走了
  • 也许应用程序崩溃了
  • 他们失去了联系
  • 他们的电池坏了
  • 他们强行退出
  • app get被意外删除。

在他们看来,他们已注册但未验证他们的帐户。在这一点上,它实际上没有办法验证他们认为他们注册的帐户。我猜它可以通过消息解决:

“在您验证电子邮件地址之前,警告您的帐户不会被创建。”或类似的规定。无论如何...

  • 他们不能尝试登录,因为他们不会知道被随机分配为他们的username的UUID。
  • 即使不是这种情况,他们也提供了他们的电子邮件地址作为用户名。从用户的POV,他们不知道他们的username甚至可能是什么,因为他们只输入了他们的电子邮件地址。
  • 他们希望的最好方法是尝试再次注册。 (假设他们阅读了上面的验证警告)在这种情况下,现在Cognito可能已经放弃了未经证实的帐户堆积。

“堆积”可能是一个过于强烈的短语,这可能是一个非常边缘的情况。

现在好的方面是,因为他们没有“验证”他们的email他们可以用相同的email地址再次注册,因为email没有得到唯一约束,直到它是verified。如果有人试图验证已经验证的地址,他们会得到一个AliasExistsException。这实际上提出了一个我刚刚测试过的有趣点。

我可以使用电子邮件地址注册,然后验证该电子邮件地址,以便确认该帐户。然后,我可以右转并使用相同的电子邮件地址注册,在尝试使用重复的电子邮件地址验证该帐户之前,我没有收到正式的AWS错误。以前没有办法表明这个错误?我想期望开发人员在预注册触发器中编写验证服务:

当用户提交其信息以进行注册时,将调用此触发器,允许您执行自定义验证以接受或拒绝注册请求。

总结一下,并重申一下这个问题:

实际上,似乎需要在使用带有Cognito的电子邮件地址时预先注册Lambda,以确保不存在具有电子邮件的帐户,因为在验证尝试之前不会处理AWS异常制作。

我的假设在这里是否正确?根据这里的要求,我认为让用户知道电子邮件地址不能尽快提供是非常合理的。例如:

John Doe : [email protected]
Jane Doe : [email protected]
amazon-web-services aws-cognito
1个回答
0
投票

你是对的。另一个解决方案是创建一个lambda(不是由preSignUp触发),并在用户完成键入电子邮件字段时调用。在发送注册活动之前,收到“此电子邮件已被使用”或“此电子邮件已可用”的回复。

参考你问题的第一部分。如果用户没有立即验证他们的电子邮件。您可能意味着通过代码确认。我更喜欢使用发送到电子邮件的链接确认,这可以避免这个问题。

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