Документация Cognito от AWS кажется бессмысленной

Я пытаюсь разрешить моим пользователям пройти через поток забытых паролей для своей учетной записи Cognito User Pool на моем сайте Javascript.

Поскольку пулы пользователей находятся на стадии бета-тестирования, часть документации отсутствует, и в данном случае это выглядит странно. AWS утверждает, что следующий код должен:

запускает и завершает поток забытых паролей для неаутентифицированного пользователя.

с кодом:

cognitoUser.forgotPassword({
        onSuccess: function (result) {
            console.log('call result: ' + result);
        },
        onFailure: function(err) {
            alert(err);
        },
        inputVerificationCode() {
            var verificationCode = prompt('Please input verification code ' ,'');
            var newPassword = prompt('Enter new password ' ,'');
            cognitoUser.confirmPassword(verificationCode, newPassword, this);
        }
    });

Может ли кто-нибудь разобраться в этом коде или хотя бы подтвердить / опровергнуть его бессмысленность?

Его можно найти по следующей ссылке: http://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html


person Mark Keane    schedule 02.07.2016    source источник
comment
Возможно, лучше всего было бы привлечь внимание AWS непосредственно через их пользовательские форумы.   -  person jzonthemtn    schedule 02.07.2016
comment
Я всего несколько раз пытался публиковать сообщения на их форумах разработчиков, и никто никогда не отвечал, из-за чего я не мог их использовать, но, возможно, мне стоит попробовать еще раз.   -  person Mark Keane    schedule 02.07.2016
comment
Какую конкретную проблему вы видите? Это синтаксически корректно? Ты пробовал это? Похоже, что код подтверждения будет отправлен из инфраструктуры когнито, поэтому он должен пройти другим путем - например, через электронную почту или номер телефона пользователя через SMS?   -  person Michael - sqlbot    schedule 03.07.2016
comment
Документация для пользовательских пулов сильно отсутствует и, на мой взгляд, сбивает с толку. Однако, говоря что-то бессмысленно, не говоря уже о том, что именно вы находите бессмысленным, вряд ли принесет вам полезные ответы - некоторые люди ответят логично (возможно), другие согласятся с вами. В любом случае, от этого вы ничего не добьетесь. Проблема в том, что там недостаточно кода для полного рабочего примера? Вы ожидаете правильного графического интерфейса пользователя (который не предоставляется пулами пользователей, это ваша работа)? Если это утешение, я чувствую твою боль!   -  person pogul    schedule 04.07.2016


Ответы (2)


Материал с подсказками в примерах действительно немного странный. Возможно, вы захотите сделать это по-другому. На самом деле вы можете вызвать confirmPassword отдельно, получив текущего когнитивного пользователя из локального хранилища после запуска процесса ForgotPassword, а затем вызвать cognitoUser.confirmPassword

Вы можете получить текущего пользователя cognitoUser следующим образом:

var data = { UserPoolId : 'us-east-1_Iqc12345', // Your UserPoolId
        ClientId : '12345du353sm7khjj1q' // Your client ID
    };
    var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(data);
    var cognitoUser = userPool.getCurrentUser();

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

cognitoUser.confirmPassword(verificationCode, newPassword, {
     onSuccess: function(result){
         // Do stuff on success
     },
     onFailure: function(err){
         // Do stuff on error
     }
});
person Danny Hoek    schedule 31.01.2017

Пример должен работать. Он работает с неаутентифицированным, подтвержденным пользователем, поэтому после настройки данных пула и имени пользователя вы можете запустить пример. Функция ForgotPassword вызывает соответствующие обратные вызовы в случае неудачи, успеха или для запроса информации о новом пароле и проверочном коде.

var poolData = {
    UserPoolId : 'YOUR_USER_POOL_ID',
    ClientId : 'YOUR_APP_ID'
};

var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = {
    Username : 'YOUR_USER_NAME',
    Pool : userPool
};

var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);

cognitoUser.forgotPassword({
    onSuccess: function (result) {
        console.log('call result: ' + result);
    },
    onFailure: function(err) {
        alert(err);
    },
    inputVerificationCode() {
        var verificationCode = prompt('Please input verification code ' ,'');
        var newPassword = prompt('Enter new password ' ,'');
        cognitoUser.confirmPassword(verificationCode, newPassword, this);
    }
});

Какая часть не имеет смысла, чтобы мы могли улучшить документацию после публичного бета-тестирования? Это неверный поток или отсутствует какая-то информация?

person Ionut Trestian    schedule 14.07.2016