如何持久化 Cognito 用户会话

Ami*_*nde 7 javascript amazon-cognito

我正在将 javascript sdk 用于 AWS cognito,并且能够使用 aws cognito 登录并接收令牌作为响应。

我可以看到用户会话是有效的,直到我刷新页面。请建议用户会话在刷新页面后如何保持。

下面是我的代码。

function getSession() {
let poolData = {
    UserPoolId: _config.cognito.userPoolId, // Your user pool id here
    ClientId: _config.cognito.clientId, // Your client id here
};

//alert(sessionStorage.getItem("SessionName"));


let userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
cognitoUser = userPool.getCurrentUser();
cognitoUser.getSession(function (err, session) {
    if (err) {
        alert(err);
        return;
    }
    console.log('session validity: ' + session.isValid());
    //Set the profile info
    cognitoUser.getUserAttributes(function (err, result) {
        if (err) {
            console.log(err);
            return;
        }
        console.log("------>>" + result);
        //document.getElementById("email_value").innerHTML = result[2].getValue();  
    });

});
Run Code Online (Sandbox Code Playgroud)

}

F_S*_*O_K 6

好消息 - SDK 会为您做到这一点。查看他们的getsession方法代码

您可以看到他们为您将令牌存储到本地存储中。

要从 Google Chrome 查看令牌,请转至开发人员工具 -> 应用程序。您应该在左侧看到“存储”部分。打开本地存储,令牌保存在应用程序的 URL 下。

您不需要直接访问这些令牌,当您调用不同的方法时,SDK 会根据需要获取并保存令牌。