Подтверждение регистрации Amazon Cognito - PullRequest
0 голосов
/ 10 октября 2019

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

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

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

1 Ответ

0 голосов
/ 10 октября 2019

О, хорошо, мой плохой. Очевидно, вы можете создать объект 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);
        });
...