预注册 Cognito 触发器

Lib*_*bby 1 javascript amazon-web-services amazon-cognito aws-lambda

我正在尝试创建 Lambda 并从 Cognito 预注册触发器触发它。lambda 应该保持注册正常工作,但它应该在 Cognito 中创建用户后立即禁用用户!

禁用用户的代码工作正常,但问题是我不能先创建用户然后再禁用!

在下面的代码中,Disableuser 函数出现错误,提示“用户不存在”!

PS:我不需要自动确认用户是真是假,我只需要用户以禁用状态存在于 Cognito 中!

请帮助!我已经被这个问题困扰三天了!!

谢谢

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

    // Confirm the user
    
        event.response.autoConfirmUser = false;
       
    
    // Set the email as verified if it is in the request
    if (event.request.userAttributes.hasOwnProperty("email")) {
        event.response.autoVerifyEmail = false;
        event.request.userAttributes.adminDisableUser= false;
        console.log('---------trying-222--------'+ event.request.userAttributes.adminDisableUser)
        console.log('event.response= '+ JSON.stringify(event.response));
    }
    // Return to Amazon Cognito
    callback(null, event);

    /////Disable user code !!
    
  var AWS = require('aws-sdk');
  
  var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
AWS.config.update({
    region: 'eu-west-1'
});
var params = {
    UserPoolId: 'Cognito UserPooool', /* required */
    Username: event.request.userAttributes.email /* required */
};
cognitoidentityserviceprovider.adminDisableUser(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log('data inside disabled= '+data); 
    // context.done(data, null)
  callback(err, data)//successful response
});
   
}
Run Code Online (Sandbox Code Playgroud)

Bri*_*ant 5

调用预注册触发器时,Cognito 中将不存在用户。您应该将禁用用户代码移至确认后触发器中。