boto3 的 get_user_attribute_verification_code() 可以用作向已验证用户发送确认码吗?

can boto3’s get_user_attribute_verification_code() be used as sending confirmation code to already verified users?

正如标题所写,我想知道使用boto3的是一个很好的做法 get_user_attribute_verification_code() method 发送确认码,即使用户已经验证。

目的是在用户超过一年未登录时激活用户。 我想通过电子邮件发送一个确认码,以检查尝试登录的用户是否真的是注册电子邮件地址的所有者。

因为我使用 AWS cognito 进行用户身份验证,所以我认为使用我已有的东西会很好。

我发现get_user_attribute_verification_code()可以用来发送确认码但是 在大多数示例中,此方法用于在注册时验证电子邮件。

那么,对已经通过验证的用户使用get_user_attribute_verification_code() 会导致 Cognito 的用户属性出现问题吗? 或者有没有其他方法可以发送确认码?

提前致谢。

我刚刚意识到您无法将状态更改回 UNCONFIRMED。但还是有办法解决的。

如果您想强制用户重新验证电子邮件地址,只需将 email_verified 属性更改为 false。现在,设置一个 Pre-Authentication lambda,它将检查该字段是否设置为 false。像这样:

if event['request']['userAttributes']['email_verified'] is False:
    client.get_user_attribute_verification_code()

这将重新发送代码。

这有一个潜在的缺点 - 每次用户尝试登录时,都会发送一封电子邮件。您可以尝试通过记录某人尝试登录的频率并暂时阻止它(或使用指数退避)来解决它。