2 回答
TA贡献1811条经验 获得超5个赞
你应该打电话给forgotPassword。来自使用 Amazon 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);
}
});
TA贡献1786条经验 获得超11个赞
所以即使我遇到了同样的问题,即使在 AWS cognito 文档中也不清楚,基本上这个过程包括两个步骤。
调用 cognitoUser.forgotPassword() 这将启动忘记密码流程,用户将收到验证码。
然后调用 cognitoUser.confirmPassword() 这将重置密码以验证发送到用户电子邮件的代码。
下面我给出了一个 cognitoUserClass,它具有实现这两个步骤的静态方法 forgotPassword() 和 confirmPassword() 方法。
import * as AmazonCognitoIdentity from 'amazon-cognito-identity-js'
class cognitoUserClass {
static cognitouser: AmazonCognitoIdentity.CognitoUser
static userPool = new AmazonCognitoIdentity.CognitoUserPool({
UserPoolId: 'your pool id',
ClientId: 'your client id',
})
static forgotPassword(userName: string): void {
const userData = {
Username: userName,
Pool: cognitoUserClass.userPool,
}
cognitoUserClass.cognitouser = new AmazonCognitoIdentity.CognitoUser(
userData
)
cognitoUserClass.cognitouser.forgotPassword({
onSuccess: (data) => {
console.log(data)
},
onFailure: (err) => {
console.log('ERR:', err)
},
})
}
static confirmPassword(
verificationCode: string,
newPassword: string
): void {
cognitoUserClass.cognitouser.confirmPassword(
verificationCode,
newPassword,
{
onFailure(err) {
console.log(err)
},
onSuccess(data) {
console.log(data)
},
}
)
}
}
export { cognitoUserClass }
添加回答
举报