Aws Cognito's Lambda PreSignup Trigger Неправильно авто-подтверждение и авто-проверка электронной почты для пользователя - PullRequest
0 голосов
/ 05 мая 2019

Я создал функцию 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
    }
}

1 Ответ

0 голосов
/ 11 мая 2019

В следующем сценарии электронная почта пользователя уже будет подтверждена.

  • Пользователь ранее подтвердил свой адрес электронной почты.
  • Пользователь удален из UserPool.
  • Пользователь снова регистрируется.

Возможно, что электронная почта подтверждена только один раз для UserPool.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...