AWS的Cognito文档似乎毫无意义

Cognito documentation by AWS seems to be nonsensical

本文关键字:毫无意义 文档 Cognito AWS      更新时间:2023-09-26

我试图让我的用户通过一个忘记密码流为他们的Cognito用户池帐户在我的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

示例中的提示符确实有点奇怪。你可能想用不同的方法。你可以单独调用confirmPassword通过在初始化forgotPassword进程后从localstorage获取当前cognituser然后调用cognituser。confirmPassword

你可以像这样获得当前的cognituser:

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
     }
});

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

什么是不合理的部分,以便我们可以在公测后改进文档?流程是否不正确或缺少某些信息?