可以将 session_state 存储在客户端的本地存储中吗?

Posted

技术标签:

【中文标题】可以将 session_state 存储在客户端的本地存储中吗?【英文标题】:Is it ok to store session_state in the client's local storage? 【发布时间】:2021-05-03 11:52:06 【问题描述】:

我在 Web 应用程序中使用 OpenId 和 Keycloak 进行身份验证管理。我想使用 Keycloak 给出的 session_state 值来使用会话的 OpenId 定义来管理会话数据,而不是浏览器定义。我的意思是当我登录一次并在两个选项卡中打开我的网络应用程序时,我不想有两个会话。

在客户端浏览器本地存储中存储session_state可以吗?

首先我想到了刷新令牌,但后来​​我读到不建议将其存储在安全 cookie 之外。我没有找到任何关于 session_state 的类似建议。 session_state 不能用来访问任何数据吗?

【问题讨论】:

【参考方案1】:

根据OpenID Connect Session Management draft,会话状态必须可以通过 javascript 访问,以便可以保存在本地存储中(规范甚至说可以保存在本地存储中)。

【讨论】:

以上是关于可以将 session_state 存储在客户端的本地存储中吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将客户端的数据存储在服务器中

Heroku postgres 关系“information_schema.session_state”不存在

Week3——Session

如何在 CI 管道中存储多个客户端的机密文件?

在没有 SVN 客户端的情况下应用 TortoiseSVN 补丁

我应该在哪里保存客户端的 JWT 以供将来请求?