Amazon Cognito предоставил триггеры предварительной регистрации для этих функций, а также автоматическую регистрацию. Ваша мысль аналогична той, которую я реализовал, в соответствии с документацией Cognito.
Здесь я использую ampify / cliэто инструментальная цепочка для моей цели разработки, поэтому лямбда-функция, используемая в триггере, выглядит следующим образом:
`
"use strict";
console.log("Loading function");
var AWS = require("aws-sdk"),
uuid = require("uuid");
var cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();
exports.handler = (event, context, callback) => {
const modifiedEvent = event;
// check that we're acting on the right trigger
if (event.triggerSource === "PreSignUp_SignUp") {
var params = {
UserPoolId: event.userPoolId,
Username: event.userName
};
cognitoIdentityServiceProvider.adminGetUser(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} // an error occurred
else {
console.log("cognito service", data);
if (data.UserStatus == "UNCONFIRMED") {
cognitoIdentityServiceProvider.adminDeleteUser(params, function(
err,
data
) {
if (err) console.log(err, err.stack);
// an error occurred
else console.log("Unconfirmed user delete successful ");
// successful response
});
}
// successful response
}
});
return;
}
// Throw an error if invoked from the wrong trigger
callback('Misconfigured Cognito Trigger '+ event.triggerSource);
};
`
это будет фактически проверять и удалять, еслистатус НЕ ПОДТВЕРЖДЕН при использовании методов aws-sdk adminGetUser и adminDeleteUser
надеюсь, это поможет;)