1

创建新的 cognito 用户时,我想通过 Pre Sign-up 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;
    }

  console.info("EVENT\n" + JSON.stringify(event, null, 2))
  console.info("CONTEXT\n" + JSON.stringify(context, null, 2))
  
    // Return to Amazon Cognito
    callback(null, event);
};

我获得的 cloudWatch 日志

"response": {
    "autoConfirmUser": true,
    "autoVerifyEmail": true,
    "autoVerifyPhone": true
}

但在 cognito 中,用户未验证 phone_number_verified=false,email_verified=false 并且用户状态为 FORCE_CHANGE_PASSWORD 而不是 CONFIRMED

4

1 回答 1

2

当通过 API 调用注册新用户时,Cognito 会忽略预签名 lambda。即使调用了 lambda,Cognito 也会忽略响应。如果不应该忽略 lambda 结果,则通过 UI 注册是目前唯一的选择。

于 2021-03-22T21:53:40.023 回答