如何禁用 Amazon Cognito 中某些用户的验证?

How to disable verification for some user in Amazon Cognito?

如果激活验证功能,Amazon Cognito 会自动发送验证码。在我的项目中,有时,我会添加用户(AWS Java SDK 中的注册功能)并通过 AdminConfirmSignup 自己验证他们,所以我不希望他们收到验证邮件。我将手动向他们发送自定义电子邮件。(不在 cognito 中使用自定义 lambda)

如果我编写预注册 lambda 函数并在那个阶段验证用户,他们还会收到验证电子邮件吗?

我怎样才能实现我的目标?

使用 pre-signup Lambda 触发器,您可以自动确认用户。在这种情况下,他们不会收到确认电子邮件。您可以在 this docs.

中找到带有自动确认的预注册示例

基本上,您在事件响应中将 autoConfirmUser 标志设置为 true。

有更快的方法可以在不实施触发器的情况下执行此操作。我花了很多时间搜索这个解决方案,在 文档不清楚。

只需按照下面的两步教程操作,使用来自 AWS 的 boto3 函数( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp.html# )

  1. 使用参数 MessageAction='SUPPRESS'
  2. 使用 admin_create_user 函数创建用户

功能详情:这将创建一个没有确认电子邮件的用户,使用临时密码并且仍未确认

  1. 使用带有参数 Permanent=True
  2. admin_set_user_password 函数为这个新用户设置永久密码

功能详情: 此功能将设置用户密码为永久密码并自动确认用户

更多详细信息: 我尝试使用 confirm_sign_upadmin_confirm_sign_up 函数进行自动确认,但均无效。 admin_confirm_sign_up 仅适用于由 sign_up 函数创建的用户,不适用于 admin_create_user