AWS的Cognito文档似乎是荒谬的

时间:2016-07-02 19:48:49

标签: javascript amazon-web-services amazon-cognito

我正在尝试允许我的用户在我的Javascript swebsite中为他们的Cognito用户池帐户查看忘记密码流。

由于用户池处于测试阶段,因此缺少一些文档,在这种情况下很奇怪。 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

2 个答案:

答案 0 :(得分:1)

示例中提示的内容确实有点奇怪。你可能想要以不同的方式做到这一点。实际上,您可以在启动forgotPassword进程后从localstorage获取当前的cognitoUser,然后再调用cognitoUser.confirmPassword

来单独调用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
     }
});

答案 1 :(得分:0)

该示例应该有效。它适用于未经身份验证的确认用户,因此一旦设置了池和用户名数据,您就可以运行该示例。 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);
    }
});

什么是没有意义的部分,以便我们可以在公开测试版之后改进文档?流量是否不正确或缺少某些信息?