gpt4 book ai didi

amazon-web-services - 如何在特定时间后自动删除 AWS Cognito 用户

转载 作者:行者123 更新时间:2023-12-05 02:04:47 25 4
gpt4 key购买 nike

我想在特定时间后从 AWS Cognito 用户池中删除一个未验证的用户。是否可以自动删除 Cognito 用户?

假设,用户使用可能属于其他人的匿名电子邮件从客户端应用程序注册。如果电子邮件未经过验证,我喜欢在一定时间后自动将其删除。这样,它将允许电子邮件的实际所有者注册。我该怎么做?

最佳答案

没有任何东西可以自动通过您的用户池并对单个用户进行一些维护。我认为一种更具可扩展性的解决方案是创建 3 个 Lambda 函数。首先是 pre sign-up lambda ,它将新用户存储在例如 DynamoDB 表中。从文档中获取的流程如下所示:

enter image description here

每次用户注册时,将新创建用户的电子邮件地址连同时间戳一起存储到表中。

在第二个 Lambda 中你会得到一个 post confirmation lambda当人们确认他们的电子邮件地址时运行。 Lambda 将从 DynamoDB 表中删除任何已确认的电子邮件地址。

最后,在第三个 Lambda 中,您将有一个 CloudWatch 事件定期(每天?每周?)运行 Lambda(有关详细信息,请参阅 this tutorial)。这是您的“清理”Lambda。任何保留在 DynamoDB 表中且早于电子邮件验证截止时间的电子邮件地址现在都将删除其 Cognito 用户池记录。

我知道这听起来可能有点挑战,但实际上您可以单独验证每个 Lambda 并一次开发一个。可以首先创建预注册 Lambda 以放入新用户。您可以确保它有效,甚至可以手动删除尚未确认的用户。第二个实际上相当简单,只需删除表中的一行。最后一个有点复杂,选择所有“旧”注册,将它们从 Cognito 中删除,然后从数据库中删除。

另一种方法是让 CloudWatch 事件运行单个 Lambda,循环遍历 Cognito 用户池中的每个用户并检查他们是否已经过验证。可能有 1000 个用户就可以了。但是,如果您非常成功并且拥有几百万用户怎么办?很大一部分用户不需要对他们做任何事情,但您仍然需要处理记录。

关于amazon-web-services - 如何在特定时间后自动删除 AWS Cognito 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64080372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com