如何重设AWS Cognito用户的密码?

时间:2019-10-24 21:40:20

标签: javascript amazon-cognito

如果我在AWS Cognito中单击某个用户的“重置密码”按钮,它所做的就是重新发送包含帐户注册电子邮件代码的验证电子邮件。

但是,如果用户使用该代码并将其输入到验证页面上,则AWS返回错误:

NotAuthorizedException: User cannot be confirmed. Current status is RESET_REQUIRED

首先,我如何让Cognito发送真实的“密码重置”电子邮件,而不是“确认您的注册”电子邮件?

我认为是因为验证JS正在调用而导致出现此错误

createCognitoUser(email).confirmRegistration(code, true, function confirmCallback(err, result)

,而不是一些未公开的密码重置功能。我应该调用什么功能?

1 个答案:

答案 0 :(得分:0)

您应该呼叫forgotPassword。从Using Amazon Cognito User Identity Pools Javascript Examples的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);
    }
});