Я создал функцию Lambda, которая запускается на этапе PreSignUp в AWS Cognito, который проверяет, заканчивается ли электронное письмо для регистрации в определенном домене, прежде чем разрешить пользователю регистрироваться. Я использую amazon-cognito-identity-js v3.0.11 для выполнения запросов регистрации и аутентификации.
Я ранее зарегистрировался и подтвердил пользователя. Но я также удалил пользователя из пула пользователей. Когда я пытаюсь зарегистрироваться, используя тот же адрес электронной почты, электронная почта пользователя уже помечается как подтвержденная, и пользователь даже не нажимает на ссылку, чтобы проверить электронную почту. После регистрации пользователя выполняются дополнительные вызовы на стороне клиента. Также возвращается токен JWT, для которого email_verified имеет значение true. Как я могу предотвратить автоматическую проверку адреса электронной почты? Или же после подтверждения электронной почты пользователя она останется подтвержденной даже после удаления пользователя из пула пользователей?
Функция предварительной регистрации лямбда :
exports.handler = async (event) => {
console.log('Incoming Event: ', JSON.stringify(event));
if (
event.region === 'us-east-1'
&& event.userPoolId === 'us-east-1_xxxxxxxxx'
&& event.callerContext
&& event.callerContext.clientId === 'xxxxyyyyzzzz'
&& event.request
&& event.request.userAttributes
&& event.request.userAttributes.email
&& event.request.userAttributes.email.endsWith('@example.com')) {
return event;
} else {
throw new Error("Invalid Request");
}
};
Событие для предварительной регистрации :
{
"version": "1",
"region": "us-east-1",
"userPoolId": "us-east-1_xxxxxxxxx",
"userName": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"callerContext": {
"awsSdkVersion": "aws-sdk-unknown-unknown",
"clientId": "xxxxyyyyzzzz"
},
"triggerSource": "PreSignUp_SignUp",
"request": {
"userAttributes": {
"email": "xxxxxxx@example.com"
},
"validationData": {}
},
"response": {
"autoConfirmUser": false,
"autoVerifyEmail": false,
"autoVerifyPhone": false
}
}