javascript - 如何持久化 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();
});
});
}
解决方案
好消息 - SDK 为您完成了这项工作。查看他们的getsession
方法代码
您可以看到他们为您将令牌存储到本地存储中。
要从 Google Chrome 查看令牌,请转到开发人员工具 -> 应用程序。您应该在左侧看到“存储”部分。打开本地存储,令牌保存在应用程序的 URL 下。
您不需要直接访问这些令牌,当您调用不同的方法时,SDK 会根据需要获取并保存令牌。
推荐阅读
- amazon-web-services - cloudwatch 警报频率不如预期
- amazon-web-services - 使用 Cloud watch MetricFilter 的 Lambda 持续时间
- php - 将格式化的数据库查询从 MySQL 转换为 MySQLi
- r - R:将信息添加到宽格式数据并将其转换为长格式的最佳实践
- sql - 在单个语句中从多个表中删除行
- swift - 将 NSCompoundPredicate 与列表一起使用
- python - python 3.8中的导入错误:没有名为'_abc'的模块
- python - ValueError:x 和 y 必须具有相同的第一维,但具有形状 (6,) 和 (3,)
- build - 避免“方便的符号链接”并直接输出到工作区
- ios - iOS Charts Library - x轴值全部合并,怎么能单独显示,不缩放