我正在尝试创建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
});
}
答案 0 :(得分:1)
调用预注册触发器时,用户将不存在于Cognito中。您应将禁用用户代码移至确认后触发器中。