在PC端用浏览器使用了一段时间的头条。头条对登录用户有一个机制,扫码登录,多开tab标签页,登录状态上保存同步的。当所有标签页都关闭,或是直接关闭了浏览器之后,再打开浏览器,用户的登录状态已经不在了,需要重新再登录才能继续使用相关的功能。
这个处理机制,在很多网站上都有,微信阅读也是这个处理方法,用户关了浏览器,登录状态就会消失。这种处理方法在保护用户隐私上挺有效果。
这个处理机制,主要涉及到二个技术点。
第一点: 跨Tab标签页面保存登录状态。浏览器客户端的存储方案主要有:token,sessionStorage, localStorage, indexdb。打开开发者工具查看头条号的使用情况,这几个都有使用。这几个存储,除了sessionStorage外,其他几个都可以做到。
第二点:关闭所有标签页时,清理用户登录状态。这个有点不好处理。关闭标签页时清理存储的数据,beforeunload事件是在关闭前执行,可以在这个事件里,对数据进行清理。
难点在于多个标签页,如果知道哪个标签页才是最后一个。这里,就需要对标签页的数量进行管理。在这个管理方面,简单的处理,就是进行一下tab标签页计数,打开时,增加一个,关闭时,减少一个。用户刷新页面时,不能重复添加。当计数为1时,用户关闭标签页时,清理用户状态。
按照这个思路,在开发者工具中找头条号的相关数据,没有找到。很显然,头条在这上面的处理没有这么简单。头条还有个子域名之间登录状态共享的问题。
头条应该可能采取我这种处理思路,但是对数据进行了加密处理。
如果有人知道头条处理方案的,希望能分享一下。