预注册Lambda触发器autoConfirmUser不起作用

时间:2019-10-28 15:30:21

标签: javascript amazon-web-services aws-lambda amazon-cognito

创建新的Cognito用户时,我想通过“预注册” lambda确认其帐户。它看起来如下:

exports.handler = function (event, context, callback) {
  event.response.autoConfirmUser = true;
  event.response.autoVerifyEmail = true;
  callback(null, event);
};

调用上面的函数(检查日志),并返回事件,并且创建用户时没有任何错误。但是,以隐身模式查看用户时,帐户状态仍设置为:

FORCE_CHANGE_PASSWORD

如果有帮助,adminCreateUser函数如下所示:

adminCreateUser({
  UserPoolId: process.env.AUTH_COGNITO_USERPOOLID,
  Username: email,
  DesiredDeliveryMediums: ['EMAIL'],
  ForceAliasCreation: true,
  TemporaryPassword: temporaryPassword,
  UserAttributes: [
    {
      Name: 'email',
      Value: email,
    },
    {
      Name: 'email_verified',
      Value: 'true'
    },
  ],
  ClientMetadata: {
    role,
  },
})

我在做什么错?任何帮助表示赞赏。如果需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

使用预注册触发器,您只能将电子邮件/电话设置为verified或将用户状态设置为CONFIRMED。如果您使用AdminCreateUser API,则在任何情况下都需要更改密码。

您可以尝试的几个选项: