Javascript 如何重置AWS Cognito用户的密码?

Javascript 如何重置AWS Cognito用户的密码?,javascript,amazon-cognito,Javascript,Amazon Cognito,如果我在AWS Cognito中单击用户的“重置密码”按钮,它所做的就是重新发送验证电子邮件,其中包含帐户注册电子邮件代码 但是,如果用户获取该代码并将其输入验证页面,AWS将返回错误: NotAuthorizedException: User cannot be confirmed. Current status is RESET_REQUIRED 首先,我如何让Cognito发送真正的“密码重置”电子邮件,而不是“确认您的注册”电子邮件 我假设它给了我这个错误,因为验证JS正在调用: cr

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

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

NotAuthorizedException: User cannot be confirmed. Current status is RESET_REQUIRED
首先,我如何让Cognito发送真正的“密码重置”电子邮件,而不是“确认您的注册”电子邮件

我假设它给了我这个错误,因为验证JS正在调用:

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

而不是一些未记录的密码重置功能。我应该调用什么函数?

您应该调用forgotPassword。来自AWS文件,网址:


问题是Cognito只允许您在电子邮件中包含一个链接,并且该电子邮件用于新用户注册和密码重置。如何判断是调用
确认注册
还是
放弃密码
?我更改了作业,因此无法访问代码库。如果我没记错的话,这都是由客户端应用程序的状态驱动的。登录页面有用户名和密码、注册链接和忘记密码链接。如果单击“注册”,它将引导您完成确认工作流。如果单击“忘记密码”,它将引导您完成忘记密码工作流。如果由于某种原因,您的确认工作流被中断,我想我们会收到一条错误消息,说明用户尚未确认,并将其重新转入确认工作流。
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);
    }
});