本文记录一次清除 Cookie 的实验:在 YouTube 中删除登录 Cookie 后刷新,登录态自动恢复,删除整站甚至所有 Google 域的 Cookie 结果相同,而同样的操作在稀土掘金会直接退出。通过四组对照实验逐层排查,最终确认背后是派生 Cookie 重新签发、跨域单点登录、浏览器级账号凭证三层机制。
背景
博主最近在回顾Cookie知识的过程中,利用浏览器做了一些实操来加深概念,偶然发现 YouTube 的登录态在全部删除 Cookie 后会自动恢复,而稀土掘金等网站则会直接退出。因此写篇博客记录下拆解的过程与推测原理。
ps:本文只记录实验现象与排查结论,Cookie 的基础概念便不在本文展开,不熟悉的朋友可以先参考 MDN 文档了解基本概念
操作现象
这次所做的操作与排查,可以归纳为四组对照实验:
| 编号 | 操作 | 结果 |
|---|---|---|
| 1 | YouTube,仅删除 LOGIN_INFO | 刷新后登录态恢复 |
| 2 | YouTube,删除整站全部 Cookie | 刷新后登录态恢复 |
| 3 | 稀土掘金,清除 Cookie | 登录态消失,需要重新登录 |
| 4 | Safari 中重复实验 1 和 2 | 删除 LOGIN_INFO 后恢复;清除所有 Cookie 后退出成功 |

【图1:Chrome的Devtool】

【图二:Safari的Devtool】
观察到相同的操作在不同网站与不同浏览器下结果不同,因此下文将逐一分析。
原理解析
删除 LOGIN_INFO 后恢复
YouTube 的登录态由一组 Cookie 共同维持。控制台执行 document.cookie 可见以下字段
bash
SID, APISID, SAPISID, __Secure-1PAPISID, __Secure-3PAPISID, PREF, SIDCC
这些字段可分为两类:
- 会话凭证:SID、HSID、__Secure-1PSID 等,用于服务端的身份校验。
- 展示层 Cookie:LOGIN_INFO,内容由会话凭证签发,主要供前端渲染账号信息。
单独删除 LOGIN_INFO 后,其余凭证仍然有效,服务端在后续响应中重新签发该字段,登录态因此恢复。
删除整站 Cookie 后恢复
Google 的登录体系采用跨域单点登录。youtube.com 域的 Cookie 被清除后,.google.com 域下的会话凭证仍然存在,再次请求 youtube.com 时会触发以下流程:
- 浏览器请求 youtube.com,未携带任何凭证。
- 服务端返回 302,跳转至 accounts.google.com 的认证接口。
- 跳转请求自动携带 google.com 域的 Cookie,验证通过。
- 跳回 youtube.com,重新签发整站 Cookie,包括 LOGIN_INFO。
整个流程在一次页面跳转中完成,表现为刷新后仍处于登录状态。
Safari 的对照结果验证了该机制:清除全部站点的 Cookie 时,google.com 域的凭证被一并删除,登录态随之消失。
删除所有 Google 域 Cookie 后恢复
将 youtube.com 与 accounts.google.com 等域的 Cookie 全部删除后,刷新仍会重新签发完整的 Cookie 组。
原因在于 Chrome 浏览器登录了 Google 账号。浏览器配置文件中保存有账号级凭证,作用近似 OAuth 2.0 体系中的长期令牌。该凭证不属于 Cookie,清除 Cookie 不影响其有效性。访问 Google 系站点且本地无会话时,Chrome 配合 accounts.google.com 使用该凭证重建会话并重新签发 Cookie。
彻底退出有两种方式:
- 退出 Chrome 浏览器登录的 Google 账号。
- 在 myaccount.google.com 的安全性设置中撤销对应会话。
Safari 未登录 Google 账号,不存在这一层凭证,因此清除 Cookie 后即退出成功。
而稀土掘金属于单站点应用,会话凭证仅存在于 juejin.cn 域,不涉及跨域单点登录与浏览器级账号,清除 Cookie 后登录态直接消失。这也是多数网站的正常表现,YouTube 的自动恢复反而是特例。
总结
登录态由多层凭证共同维持,从浅到深依次为:
bash
展示层 Cookie:LOGIN_INFO 等派生字段
会话 Cookie:SID、__Secure-1PSID 等
父域单点登录会话:.google.com 域下的凭证
浏览器级凭证:Chrome 配置文件中的账号登录态
清除操作只作用于 Cookie 层时,更深层的凭证会重新生成被删除的部分,登录态表现为自动恢复。只有逐层断开整条凭证链,才能真正退出。
附录与参考
参考资料:
拓展:Cookie的其他实践价值
- 修复登录故障。网站出现登录循环或状态异常时,删除该站点的身份 Cookie 即可完成局部重置,无需清空浏览器全部数据。
- 登录态迁移。将核心身份 Cookie 的值复制到其他设备或脚本中即可免密登录,自动化脚本常以此绕过验证码流程。
- 识别第三方追踪。DevTools 的 Cookie 面板中出现的陌生域名通常是第三方追踪器,可据此配置拦截规则。
- 安全开发参考。身份凭证应设置 HttpOnly 与 Secure 属性,避免被 XSS 脚本通过 document.cookie 窃取。
ps:感觉浏览器好好玩!还有好多内容可以探索,希望以后能够学习与更新更多有趣的内容