让 115 网盘网页版关掉浏览器不用重新登录 · 一个只有 3 个文件的浏览器扩展
115 网盘网页版有个让人难受的行为:关掉浏览器再打开,就得重新扫码登录。
原因是 115 把几个身份 Cookie(UID、CID、SEID、KID)下发成了会话级 Cookie——没有过期时间,只存在内存里,浏览器主进程一退出就销毁。这几个 Cookie 又带着 HttpOnly 标记,网页里的 JavaScript 改不了它们。
这个扩展只做一件事:在浏览器允许的范围内,把 115.com 下这些会话级 Cookie 的过期时间补上(改成约 395 天后过期)。
它不碰 Cookie 的值,一个字节都不改。 不动你的账号密码,不动登录流程,不请求任何外部服务器。
做:
- 只处理
115.com及其子域的 Cookie,其他网站碰不到(host_permissions限定为*://*.115.com/*,访问别的域名会被浏览器拒绝)。 - 在四个时机自动处理:扩展装好时、浏览器启动时、Cookie 发生变化时、每 30 分钟兜底一次。
- 保留每个 Cookie 原有的
httpOnly、secure、sameSite、domain、path属性。
不做:
- 不改 Cookie 内容、不劫持请求、不注入页面脚本。
- 不收集任何数据,不上传任何东西,没有后端。
- 不支持 Firefox / Safari(用的是 Chromium 的
chrome.cookiesAPI)。
适用于 Chrome、Edge、Brave、Cent Browser、Vivaldi 等 Chromium 内核浏览器。
- 下载或克隆本仓库到本地任意目录。
- 地址栏打开
chrome://extensions回车(Edge 是edge://extensions)。 - 打开右上角「开发者模式」。
- 点「加载已解压的扩展程序」,选择本仓库目录(含
manifest.json的那一层)。 - 扩展列表里出现「115 保活登录」即安装完成。
装好后打开一次 115 网盘并保持登录(已登录的话随便打开一个 115 页面),让扩展抓到当前下发的 Cookie。
- 扩展图标上的蓝色数字 = 当前 115.com 下已持久化的 Cookie 条数。数字不是 0 就说明在起作用。
- 想看细节:在
chrome://extensions点本扩展的「服务工作进程」,控制台里会出现[115保活] xxx 已转为持久。日志只出现 Cookie 名字,不出现值。 - 真正的验证:完整退出浏览器(所有窗口关掉),重新打开后访问 115 网盘,看是否还是登录状态。
⚠️ 退出浏览器请用正常方式(点关闭按钮或Ctrl+Shift+Q),不要用任务管理器结束进程。强制结束进程时 Chromium 可能来不及把 Cookie 写进磁盘,重开后照样会掉登录——这是浏览器自身行为,不是扩展的问题。
chrome://extensions → 找到「115 保活登录」→「移除」。
注意:卸载不会把已经改成持久的 Cookie 改回去。 它们会一直有效到过期时间(约 395 天后),期间浏览器仍会保持登录。想立刻退出登录,请到浏览器设置里清除 115.com 的 Cookie,或在 115 网页端点「退出登录」。
- 持久 Cookie 上限 400 天:这是 Chromium 从 M104 起强制的限制,写更长会被截断。本扩展用 395 天留了余量。
- 115 改了机制就失效:如果 115 以后改用别的登录凭据形式,或者主动清理这类持久 Cookie,扩展需要相应调整。
- 服务端仍可让你掉线:本扩展只能让 Cookie 在本地活得更久。如果 115 服务端吊销了会话,或者你在别处重新登录导致同端互斥,还是会被踢下线。
- 多设备 / 多浏览器不共享:每个浏览器 profile 需要单独安装。本扩展不提供跨设备 Cookie 同步。
这个扩展的原理,是让 115 想让你「关浏览器就重新登录」的做法在本地失效。
- 115 的官方说明里提到,使用非官方软件或接口可能触发风控甚至封号。本扩展没有模拟登录接口、没有自动请求、没有伪造设备,但它确实修改了 115 下发的 Cookie 属性。
- 是否使用、是否长期使用,请你自己判断。本项目不保证你的账号不会被限制或封禁。
- 建议只在自己的个人设备上用于自己的账号,不要把 Cookie 提取出来给他人或第三方工具使用(那属于另一种风险,本扩展也不做这件事)。
如果你介意上述风险,替代方案是使用 115 官方的「115 浏览器」,它内置了「关闭浏览器不退出账号」的开关。
| 要点 | 为什么 |
|---|---|
expirationDate 设 395 天 |
Chromium M104 起上限 400 天,超出会被截断 |
显式传 httpOnly: cookie.httpOnly |
chrome.cookies.set 默认 httpOnly: false,不显式传会把 HttpOnly 标记弄丢,等于把登录凭据暴露给网页脚本 |
host-only Cookie 用 url 而非 domain |
host-only 不接受 domain 参数 |
sameSite === "no_restriction" 需 secure |
原数据异常时跳过,不硬改 |
只处理 session === true |
写回后该 Cookie 不再是 session,自然幂等,不会自己跟自己打架 |
cookies.onChanged + 30 分钟 alarm |
页面每次加载可能重发会话 Cookie 覆盖设置,需要即时改写;MV3 的 service worker 会被回收,靠 alarm 兜底 |
ensureAlarm 先 get 再 create |
避免每次 worker 启动都重置计时 |
完整逻辑见 background.js,约 200 行,有注释。
MIT。随意使用、修改、分发,保留版权声明即可。
本项目与 115 科技无任何关联,非官方项目。使用本扩展造成的任何后果(包括但不限于账号被限制、数据丢失)由使用者自行承担。