Подтверждение регистрации в Amazon Cognito

Итак, я использую (или, по крайней мере, пытаюсь) Amazon Cognito с функциями Lambda для аутентификации. Вот последовательность действий: я отправляю запрос, он идет на шлюз API, который направляет его на определенную функцию Lambda. Я использую Node JS с библиотекой amazon -ognito-identity-js. Я могу зарегистрировать пользователя. Дело в том, что Cognito отправляет письмо с кодом подтверждения после регистрации. Я не могу создать другую функцию Lambda (конечная точка API) для подтверждения, поскольку для нее требуется объект CognitoUser (который вы получаете после регистрации или входа в систему). Вот код из документации AWS:

cognitoUser.changePassword('oldPassword', 'newPassword', function(err, result) {
        if (err) {
            alert(err);
            return;
        }
        console.log('call result: ' + result);
    });

По сути, он не предназначен для лямбда-функций, поскольку требует сохранения состояния - пользователя после регистрации. Я ошибаюсь? Есть способ?


person funtik    schedule 10.10.2019    source источник


Ответы (1)


О, хорошо, моя беда. По-видимому, вы можете создать объект CognitoUser, используя только имя пользователя и пул пользователей:

const poolData = {    
    UserPoolId : process.env.COGNITO_USER_POOL_ID,
    ClientId : process.env.COGNITO_CLIENT_ID
};
const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
...
const userData = { 
        Username : email,
        Pool : userPool
};

и тогда вы можете позвонить

cognitoUser.confirmRegistration(confirmationCode, true, function(err, result) {
            if (err) {
                alert(err);
                return;
            }
            alert(result);
        });
person funtik    schedule 10.10.2019