浏览器标签页的localStorage、sessionStorage、cookie问题

现在的浏览器都是多标签页的,每个标签页是一个子浏览器,假如你的H5应用需要在同一台电脑切换不同用户,且用户经过登陆授权后,把授权ID以cookie的形式保存,或是服务器session保存(本质上客户端也会有一个cookie保存,如PHPSESSIONID),有以下事项需要注意

  • 一个浏览器应用程序的各个运行实例的各个标签页拥有各自的DOM空间、Javascripts空间、sessionStorage,但对于一个同源网站,这些标签页共享cookie、localStorage。

结果:当你打开另外一个标签页时(或同一个浏览器另外一个实例)进入此网址时,可以不经再授权的进入界面,也许你期望这样,也许你不期望这样。

  • 各个标签页(相当于一个window)关闭,DOM空间、Javascripts空间、sessionStorage生命期也结束,但localStorage永久保存,有expires date的 cookie结束于过期日期,没expires date的cookie(结束于session)并不会立刻结束,必须直到整个浏览器的每个实例都关闭后才消失

结果:当你关闭此标签页,而没有关闭整个浏览器,或者此浏览器有多个运行实例,而只关闭一个浏览器,而你以为已经把系统退出了,但此时session结束后的cookie并未消失,其他标签页可以重新输入网址不经再授权地进入界面。

  • 刷新(window.reload)将重置DOM空间、Javascripts空间,但sessionStorage还保持。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trainee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值