背景
OpenList 文档中 115 QRCode 扫码方式登录显示仍在开发中, 手动抓取移动端 Cookie 方式较为繁琐。
值得庆幸的是:文档中提供了 Python 脚本可以通过扫描二维码获取 Cookie,缺点是需要本地部署Python 环境,且较依赖 PC 端。
优化方案
本项目借助 gemini pro 改写为 Javascript 实现并直接部署在前端,减少对 PC 端的依赖,由于前端直接请求 115 官方 API 存在跨域问题,本项目通过 Cloudflare 实现代理以解决跨域问题。
项目模板地址:GitHub - KrxkGit/115-fetch-cookie: 扫码读取115 Cookie
可基于模板修改自行完成部署。大致步骤如下:
- 注册 Cloudflare: 如果您还没有账户,请注册一个。
- 进入 Workers & Pages: 在仪表盘中找到并进入。
- 创建 Worker:
- 点击 “Create Application” → “Create Worker”。
- 给你的 Worker 起一个名字 (例如 my-115-proxy),然后点击 “Deploy”。
- 编辑代码:点击新创建的 Worker 上的 “Edit code” 按钮。
- 将编辑器中的默认代码替换为
worker_index.js中代码 - 保存并部署: 点击 “Save and deploy”。
- 部署后,你的 Worker 会有一个 URL,例如 my-115-proxy.your-username.workers.dev。
- 修改 index.html 文件,修改 PROXY_URL 常量:
const PROXY_URL = ‘https://my-115-proxy.your-username.workers.dev/?target=’;
- 修改
worker_index.js中的ALLOWED_ORIGINS:
- 如果您在本地测试:代码中默认包含了 ‘null’ (用于 file:// 协议) 和对 http://localhost 的支持,您无需修改。
- 如果您部署到线上:假设您将 index.html 部署到了 Vercel,地址是 https://my-115-login.vercel.app。您需要将
ALLOWED_ORIGINS数组修改为:
const ALLOWED_ORIGINS = [ ‘https://my-115-login.vercel.app’, ‘null’, ‘http://localhost’, ];
完成上述步骤后,当用浏览器访问部署后的 index.html 时,所有的 API 请求都会通过 Cloudflare Worker 代理,成功绕过 CORS 限制。
项目模板仓库:GitHub - KrxkGit/115-fetch-cookie: 扫码读取115 Cookie
Demo:https://115-fetch-cookie-krxk.vercel.app/