首页 > 解决方案 > 如何持久化 Cognito 用户会话

问题描述

我正在为 AWS cognito 使用 javascript sdk,并且能够使用 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();  
    });

});

}

标签: javascriptamazon-cognito

解决方案


好消息 - SDK 为您完成了这项工作。查看他们的getsession方法代码

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

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

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


推荐阅读