# MyToken **Repository Path**: kinglike/mytoken ## Basic Information - **Project Name**: MyToken - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-14 - **Last Updated**: 2026-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyToken MyToken 是一个基于 **端到端加密 (E2EE)** 的浏览器令牌管理工具,旨在帮助用户安全地管理 Cookie、Session Token 等敏感信息,并提供强大的请求自动化能力(基于 cURL 解析与模板)。 本项目包含两个主要部分:**浏览器扩展 (Extension)** 和 **Go 后端服务 (Server)**。 ## ✨ 主要特性 * 🔒 **零知识架构**:用户数据在本地加密后上传,服务端全程无法接触明文数据。 * 🛡️ **令牌保险库**:集中管理多个站点的 Token,支持按域名分组、搜索和快速切换。 * 📜 **cURL 模板引擎**:支持将浏览器的网络请求(cURL 格式)解析为可复用的请求模板,并自动映射 Token 变量。 * ⚡ **一键注入/切换**:快速将目标站点的 Token 注入到当前页面或发起带有新 Token 的请求。 * ⏳ **定时任务**:支持配置自动执行 Token 刷新、有效性检测或网页签到等后台任务。 * 📝 **OpenSpec 驱动**:项目需求与设计遵循 `openspec` 目录下的规范文档,确保功能开发的一致性与完整性。 ## 🏗 项目架构 ### 1. 浏览器扩展 (extension) 前端采用 **Vue 3** 构建,提供直观的用户界面处理令牌的采集、编辑与使用。 * **核心逻辑 (`src/background.ts`)**:处理 Cookie 强制注入、跨域请求发送以及与插件 UI 的通信。 * **数据解析 (`src/lib/`)**: * `curl.ts`: 强大的 cURL 命令解析器,支持提取 Header、Body 及变量。 * `varMap.ts`: 负责将抓取的 Cookie/Storage 数据与模板变量进行智能匹配与映射。 * `crypto.ts`: 实现前端加解密逻辑。 * **页面视图 (`src/views/`)**: * `CaptureView`: 核心采集界面,支持抓取站点数据并解析 cURL。 * `DataView` / `TokenVault`: 令牌库列表与总览。 * `LoginView`: 零知识风格的本地/服务端登录入口。 ### 2. 后端服务 (server) 后端采用 **Go (Gin 框架)** 开发,负责数据持久化、用户认证及定时调度。 * **Handlers**: * `auth.go`: 用户注册、登录、密码修改(使用 Argon2 加密)。 * `token.go`: Token 的增删改查、导入导出。 * `template_share.go`: 请求模板管理及安全分享链接生成。 * `task.go`: 定时任务(Scheduling)的创建与日志查看。 * **中间件 (middleware)**: JWT 认证、跨域处理、日志记录。 * **调度器 (scheduler)**: 基于 cron 表达式的后台任务执行引擎。 ## 📂 目录结构 ```text . ├── extension/ # 浏览器扩展前端项目 │ ├── src/ │ │ ├── api/ # API 客户端封装 │ │ ├── background.ts # 扩展后台 Service Worker 逻辑 │ │ ├── components/ # 通用 Vue 组件 (底部导航、解锁弹窗等) │ │ ├── lib/ # 核心工具库 (curl解析, 加密, 变量映射) │ │ ├── stores/ # Pinia 状态管理 (auth, settings, tokens) │ │ ├── styles/ # 样式文件 (主题定义) │ │ ├── views/ # 页面视图 (采集、数据、设置) │ │ └── main.ts # 入口文件 │ ├── package.json │ └── vite.config.ts # 构建配置 │ ├── server/ # 后端 Go 服务 │ ├── cmd/server/ # 程序入口 │ ├── internal/ │ │ ├── config/ # 配置加载 │ │ ├── crypto/ # 加解密 (AES-GCM, 随机数) │ │ ├── db/ # 数据库连接与迁移 │ │ ├── domainutil/ # 域名处理工具 │ │ ├── handlers/ # HTTP 请求处理器 │ │ ├── middleware/ # Gin 中间件 │ │ ├── models/ # 数据模型定义 │ │ ├── response/ # 响应封装 │ │ └── scheduler/ # 定时任务调度器 │ ├── migrations/ # SQL 迁移脚本 │ ├── Dockerfile │ └── go.mod │ ├── openspec/ # 产品需求与设计规范 │ ├── specs/ # 各功能模块详细需求文档 │ └── changes/ # 需求变更记录 │ └── docker-compose.yml # 服务编排配置 ``` ## 🚀 快速开始 ### 1. 部署服务端 确保已安装 Docker 和 Docker Compose。 ```bash # 在项目根目录执行 docker-compose up -d --build # 服务默认监听 8080 端口 ``` ### 2. 构建浏览器扩展 扩展前端基于 Node.js 构建。 ```bash cd extension # 安装依赖 npm install # 构建生产版本 npm run build # 加载扩展 # 打开 Chrome/Edge 扩展管理页面 -> 开启开发者模式 -> 加载 extension/dist 目录 ``` ## 📖 详细规范 如果你想了解 MyToken 的具体设计决策或 API 细节,请查阅 `openspec/` 目录: * **用户认证**: 零知识密码验证流程 (`openspec/specs/user-auth/spec.md`) * **数据采集**: Cookie/Storage 抓取与 cURL 解析 (`openspec/specs/data-capture/spec.md`) * **请求模板**: 变量映射与模板复用 (`openspec/specs/request-template/spec.md`) * **定时任务**: 自动化任务执行机制 (`openspec/specs/scheduled-tasks/spec.md`) ## 🛠 技术栈 * **Frontend**: Vue 3, TypeScript, Vite, Element Plus, Pinia * **Backend**: Go 1.25, Gin, Pgx (PostgreSQL), Argon2 * **Database**: PostgreSQL * **Encryption**: AES-256-GCM (端到端加密) --- *MyToken - 保护您的数字身份。*