Skip to content

Mebius1916/CookieFlow

Repository files navigation

CookieFlow

🚀 一个简洁现代的Cookie复制和管理工具(浏览器插件)

📖 开发背景

此插件为本人在百度实习时开发,为解决:前端proxy代理需要在不同的后端环境切换,而测试环境的cookie有可能是不同的且浏览器无法将其带到本地环境,遂开发此插件用于切换后端环境时一键复制cookie。

来字节后发现接手项目也存在此问题,即线上sso的登录cookie无法被浏览器带到本地环境,这会导致后端返回302,且由于跨域问题无法跳转到登录页。


🛠️ 使用技术栈


✨ 插件功能

  • ✅ 复制源地址cookies到目标地址
  • ✅ 清空目标地址的cookies
  • ✅ 历史记录支持且可删除
  • ✅ URL合法性校验
  • ✅ 消息提示弹窗
  • ✅ 自动读取当前页面URL

🏗️ 项目架构

参考百度TDA平台中AI助手组件的架构设计:UI层与业务逻辑抽离,状态管理与工具函数抽离,采用高内聚低耦合、单一职责原则的分层架构。

🎨 UI层 (Popup.jsx) ← 纯视图渲染 ↓ ⚛️ Hook层 (useCookieFlow.js) ← 状态管理 + 副作用处理 ↓ 🔧 Utils层 (cookie.js, storage.js, urlValidation.js) ← 纯函数工具集


📁 代码结构

CookieFlow/ ├── 📁 assets/ │ ├── 📄 icon.svg # 插件图标 │ └── 📄 icon*.png # 不同尺寸图标 ├── 📁 src/ │ ├── 📁 components/ │ │ └── 📄 UrlInput.jsx # URL输入框组件 │ ├── 📁 hooks/ │ │ └── 📄 useCookieFlow.js # 自定义业务Hook │ ├── 📁 pages/ │ │ └── 📁 popup/ │ │ ├── 📄 index.html # 弹窗页面模板 │ │ ├── 📄 index.jsx # React应用入口 │ │ └── 📄 Popup.jsx # 主弹窗组件 │ ├── 📁 styles/ │ │ └── 📄 index.css # 全局样式 │ └── 📁 utils/ # 工具函数层 │ ├── 📄 cookie.js # Cookie操作核心逻辑 │ ├── 📄 storage.js # Chrome存储API封装 │ ├── 📄 history.js # 历史记录处理逻辑 │ ├── 📄 message.jsx # 消息提示封装 │ ├── 📄 urlValidation.js # URL校验工具 │ └── 📄 init.js # 初始化逻辑 ├── 📄 manifest.json # Chrome扩展配置 ├── 📄 package.json # 项目依赖配置 └── 📄 vite.config.js # Vite构建配置


🚀 快速开始

开发命令

安装依赖

npm install

开发模式

npm run dev

构建生产版本(插件包)

npm run build

安装使用

  1. 下载dist压缩包:https://github.com/Mebius1916/CookieFlow/releases/tag/v1.0.0
  2. 下载并解压dist压缩包
  3. 在Chrome中打开扩展程序页面 (chrome://extensions/)
  4. 启用"开发者模式"
  5. 点击"加载已解压的扩展程序",选择刚才解压的dist包

🔌 Chrome API 使用

本项目主要使用以下Chrome扩展API:

  • chrome.cookies - 管理浏览器Cookie数据

    • getAll() - 获取指定URL的Cookie
    • set() - 设置Cookie
    • remove() - 删除Cookie
  • chrome.tabs - 获取浏览器标签页信息

    • query() - 查询当前活跃标签页
  • chrome.storage.local - 本地数据存储

    • get() - 读取本地存储
    • set() - 保存本地存储

🔗 开源地址

GitHub: Mebius1916/CookieFlow

本项目采用开源协议,欢迎提交 PR 参与开源贡献!🎉


About

一个简洁现代的Cookie复制和管理工具

Resources

Stars

Watchers

Forks

Packages

No packages published