我正在构建一个应用程序。在那Sign up
, Signin
和其他操作工作正常。但是,当我尝试使用以下代码更改密码时,它说
"Local storage is missing an ID Token, Please authenticate"
代码是:
changePassword(mail: any) {
var that = this;
var userPool = new CognitoUserPool(this.poolData);
var userData: any = {
Username: mail,
Pool: userPool
};
var cognitoUser = new CognitoUser(userData);
// To get the session
cognitoUser.getSession(function (err, session) {
if (err) {
alert(err);
return;
}
var userPool = new CognitoUserPool(that.poolData);
var userData: any = {
Username: mail,
Pool: userPool
};
var cognitoUser = new CognitoUser(userData);
var oldp = prompt('Please input old password ', '');
var newp = prompt('Please input new password ', '');
cognitoUser.changePassword(oldp, newp, function (err, result) {
if (err) {
alert(err.message || JSON.stringify(err));
return;
}
alert("Password successfully changed...");
});
});
}
我不确定这有什么问题。请帮我解决这个问题。
谢谢...
最佳答案
经过如此多的努力,我发现每次使用时我都在创建新的 Cognito 用户
poolData = {
UserPoolId: "XXXXXXXXXXXXXXXXX",
ClientId: "XXXXXXXXXXXXXXXXXXXXXXXX"
};
userPool: CognitoUserPool = new CognitoUserPool(this.poolData);
因此,每当我调用它时,都会创建一个新的认知用户。因此,对此更改密码不起作用。
当我创建了一个通用函数来访问
cognitoUser
并在任何地方使用相同的方法对我有用。谢谢...
关于amazon-web-services - 本地存储缺少 ID token ,请在更改密码时验证错误 Cognito AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51656963/