在离开并返回后,SessionStorage有时会丢失

时间:2019-04-11 11:35:08

标签: javascript session-storage

我正在使用SessionStorage存储前端应用程序所需的私有上下文信息。我注意到,有时导航到另一个网站(不同的域,应用程序流程的一部分)并再次返回时,会话存储并不是我离开的方式。有时什么都没有,有时仍然保留一些属性。

我已经看到这种情况发生在Windows上的Chrome隐身模式和Safari私有浏览模式下。对于Safari,我可以检测到私人浏览并依靠会话cookie,但是这些cookie将毫无意义地通过网络传递,因此我不想将此作为我的主要解决方案。另外,我只能在Safari中检测到它,而不能在Chrome中检测到。

我找不到任何文章表明这​​是预期的行为。它并不总是发生的事实使调试变得更加有趣。

有没有办法可靠地使用SesionStorage?还是有建议的替代方法以安全的方式存储此敏感信息?

2 个答案:

答案 0 :(得分:0)

没有SessionStorage绑定到浏览上下文的生命周期。浏览器之间的上下文不同。 来自spec

  

浏览上下文的生存期可能与实际用户代理进程本身的生存期无关,因为用户代理可以在重启后支持恢复会话。

如果您想要更持久的解决方案,可以使用LocalStorage

答案 1 :(得分:0)

使用LocalStorage代替Session Storage 但是,当您不需要进一步存储数据时,请不要忘记清除本地存储 有关更多信息,check out