AWS Cognito - 创建用户而不向他们发送验证电子邮件

Posted

技术标签:

【中文标题】AWS Cognito - 创建用户而不向他们发送验证电子邮件【英文标题】:AWS Cognito - Create user without sending them a verification email 【发布时间】:2020-03-12 16:19:44 【问题描述】:

我正在尝试为我自己注册的一些用户(管理员)禁用验证过程。

我已经添加了注册前 lambda,就像文档说的那样:

```exports.handler = (event, context, callback) => 

// Confirm the user
    event.response.autoConfirmUser = true;

// Set the email as verified if it is in the request
if (event.request.userAttributes.hasOwnProperty("email")) 
    event.response.autoVerifyEmail = true;


// Set the phone number as verified if it is in the request
if (event.request.userAttributes.hasOwnProperty("phone_number")) 
    event.response.autoVerifyPhone = true;


// Return to Amazon Cognito
callback(null, event);

;

电子邮件验证仍在发送给用户。

我还尝试在使用 adminCreateUser 创建用户后立即使用 adminConfirmSignUp api 来确认用户。但这是我在使用 adminConfirmSignUp

时遇到的错误

NotAuthorizedException: 无法确认用户。当前状态是 FORCE_CHANGE_PASSWORD

有没有其他方法可以不向某些用户发送验证电子邮件?

【问题讨论】:

【参考方案1】:

我通过在创建用户时在请求中包含这两个属性来实现这一点。

DesiredDeliveryMediums: [],
MessageAction: "SUPPRESS"

无需预先注册 lambda。

【讨论】:

以上是关于AWS Cognito - 创建用户而不向他们发送验证电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用AWS Cognito实现“私人聚会”

用于获取AWS Cognito用户池令牌的OAUTH2服务器?

AWS Cognito 和 DynamoDB

链接到 Cognito 用户池的 AWS Amplify GraphQL 架构

在 AWS Cognito 中为 MFA 配置自定义 SMS 消息

AWS Cognito 登录 iOS (swift)