【问题标题】:Local storage is missing an ID Token, Please authenticate error while changing password Cognito AWS本地存储缺少 ID 令牌,更改密码时请验证错误 Cognito AWS
【发布时间】:2018-08-03 18:32:24
【问题描述】:

我正在构建一个应用程序。在那个Sign upSignin 和其他操作工作正常。但是,当我尝试使用以下代码更改密码时,它会说

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

我不确定这有什么问题。请帮我解决这个问题。

谢谢...

【问题讨论】:

    标签: amazon-web-services aws-sdk amazon-cognito aws-cognito


    【解决方案1】:

    经过这么多的努力,我发现我每次使用都在创建新的 Cognito 用户

    poolData = {
        UserPoolId: "XXXXXXXXXXXXXXXXX",
        ClientId: "XXXXXXXXXXXXXXXXXXXXXXXX"
    };
    userPool: CognitoUserPool = new CognitoUserPool(this.poolData);
    

    所以,每当我调用它时,都会创建一个新的认知用户。因此,对此的更改密码不起作用。

    当我创建了一个通用函数来访问cognitoUser 并在任何地方使用相同的函数对我有用。

    谢谢...

    【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2019-02-21
    • 2021-08-28
    • 1970-01-01
    • 2016-09-04
    • 2020-06-20
    • 2021-04-25
    • 1970-01-01
    • 2018-03-07
    相关资源
    最近更新 更多