# accountmanage **Repository Path**: sinma/accountmanage ## Basic Information - **Project Name**: accountmanage - **Description**: 个人账户密码管理 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-29 - **Last Updated**: 2025-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🔐 账号密码管理器
![License](https://img.shields.io/badge/license-MIT-blue.svg) ![PHP](https://img.shields.io/badge/php->=8.0-777BB4.svg) ![Vue](https://img.shields.io/badge/vue-3.x-4FC08D.svg) ![ThinkPHP](https://img.shields.io/badge/thinkphp-8.x-f39800.svg) ![MySQL](https://img.shields.io/badge/mysql->=8.0-4479A1.svg) 一个基于 Vue 3 + ThinkPHP 8 的现代化账号密码管理系统 支持端到端加密、多设备同步、多种加密算法可选 [在线演示](https://demo.accountmanage.com) | [使用文档](#使用指南) | [API文档](#api接口) | [更新日志](CHANGELOG.md)
## ✨ 项目特色 ### 🔒 安全特性 - **🛡️ 端到端加密**:所有敏感数据在客户端加密,服务端无法解密 - **🔐 多种加密算法**:支持 AES-256-GCM、AES-256-CBC、AES-128-GCM、3DES、SM4 等 - **🔑 主密码保护**:使用 PBKDF2 密钥派生,主密码不上传服务器 - **📱 设备管理**:支持多设备登录管理,及时清理异常设备 - **📊 操作审计**:详细记录所有操作日志,便于安全分析 - **⏰ 自动锁定**:长时间无操作自动锁定,保护数据安全 ### 🚀 功能特性 - **👥 多用户系统**:完整的用户注册、登录、权限管理体系 - **🔄 多平台登录**:支持账号密码、微信、支付宝、抖音一键登录 - **🔗 账号绑定**:同一用户可绑定多个第三方平台账号 - **📁 分类管理**:支持系统预设分类和用户自定义分类 - **⚡ 密码工具**:内置密码生成器、强度检测、过期提醒 - **☁️ 云端同步**:数据云端备份,多设备实时同步 - **🔍 智能搜索**:支持账号名称、网站、备注等多维度搜索 - **🌙 深色模式**:支持浅色/深色/跟随系统三种主题 - **🌍 国际化**:支持简体中文和英文双语切换 - **📱 PWA支持**:离线可用,可添加到主屏幕 ### 🌍 平台支持 - **🌐 H5 网页版**:响应式设计,兼容各种现代浏览器 - **📱 移动端适配**:完美适配手机和平板设备 - **💻 PWA应用**:支持离线使用,可安装为桌面应用 - **🔮 小程序扩展**:预留微信、支付宝、抖音小程序接口 ## 🏗️ 技术架构 ### 后端技术栈 - **🐘 PHP**:8.0+ - **🎯 框架**:ThinkPHP 8.0 - **💾 数据库**:MySQL 8.0+ - **⚡ 缓存**:Redis - **🔐 认证**:JWT Token - **🛡️ 加密**:OpenSSL、crypto-js - **🔌 HTTP客户端**:Guzzle ### 前端技术栈 - **💚 框架**:Vue 3 + TypeScript - **⚡ 构建工具**:Vite 4.x - **🗂️ 状态管理**:Pinia - **🎨 路由**:Vue Router 4 - **🔐 加密库**:crypto-js - **📡 HTTP客户端**:Axios - **🌍 国际化**:vue-i18n (支持中英文) - **📱 PWA**:vite-plugin-pwa + Workbox - **🎨 样式**:原生CSS + CSS Variables + 响应式设计 ## 📦 项目结构 ``` accountmanage/ ├── 📁 backend/ # 后端API服务 │ ├── 📁 app/ │ │ ├── 📁 controller/ # 控制器层 │ │ ├── 📁 model/ # 数据模型层 │ │ ├── 📁 service/ # 业务逻辑层 │ │ ├── 📁 middleware/ # 中间件 │ │ └── 📄 common.php # 公共函数 │ ├── 📁 config/ # 配置文件 │ ├── 📁 route/ # 路由配置 │ ├── 📁 database/ # 数据库文件 │ │ └── 📁 migrations/ # 数据库迁移文件 │ ├── 📁 public/ # 入口文件 │ ├── 📄 .env.example # 环境配置示例 │ └── 📄 composer.json # Composer配置 │ ├── 📁 frontend/ # 前端应用 │ ├── 📁 src/ │ │ ├── 📁 views/ # 页面组件 │ │ ├── 📁 components/ # 通用组件 │ │ ├── 📁 composables/ # 组合式函数 │ │ ├── 📁 i18n/ # 国际化配置 │ │ │ └── 📁 locales/ # 语言包 │ │ ├── 📁 stores/ # 状态管理 │ │ ├── 📁 utils/ # 工具函数 │ │ │ └── 📁 crypto/ # 加密工具 │ │ ├── 📁 assets/ # 资源文件 │ │ └── 📁 types/ # TypeScript类型定义 │ ├── 📁 public/ # 静态资源 │ ├── 📄 vite.config.ts # Vite配置 (含PWA) │ ├── 📄 package.json # NPM配置 │ └── 📄 tsconfig.json # TypeScript配置 │ └── 📄 README.md # 项目说明文档 ``` ## 🚀 快速开始 ### 📋 环境要求 **🔧 后端环境** - PHP >= 8.0 - MySQL >= 8.0 - Redis >= 5.0 (可选,用于缓存) - Composer >= 2.0 **🔧 前端环境** - Node.js >= 16.0 - npm >= 8.0 或 yarn >= 1.22 ### 🛠️ 部署步骤 #### 1️⃣ 获取项目代码 ```bash # 克隆项目 git clone https://gitee.com/your-username/accountmanage.git cd accountmanage ``` #### 2️⃣ 后端部署 ```bash # 进入后端目录 cd backend # 安装PHP依赖 composer install # 复制环境配置文件 cp .env.example .env ``` **📝 配置数据库** 编辑 `.env` 文件,配置数据库连接: ```env # 数据库配置 DATABASE_TYPE = mysql DATABASE_HOSTNAME = 127.0.0.1 DATABASE_DATABASE = accountmanage DATABASE_USERNAME = root DATABASE_PASSWORD = your_password DATABASE_HOSTPORT = 3306 DATABASE_CHARSET = utf8mb4 # JWT配置 JWT_SECRET = your-super-secret-jwt-key-2024-accountmanage-app JWT_EXPIRE = 7200 JWT_REFRESH_EXPIRE = 604800 # 加密配置 ENCRYPT_KEY = your-encrypt-key-32-characters-long ENCRYPT_IV = your-encrypt-iv-16-chars ``` **📊 初始化数据库** ```bash # 创建数据库和表结构 mysql -u root -p < database/migrations/create_database.sql # 插入系统分类数据(可选) mysql -u root -p accountmanage < insert_categories.sql ``` **🚀 启动后端服务** ```bash # 开发环境启动 php think run # 生产环境配置(推荐使用 Nginx + PHP-FPM) # 将 public 目录设置为网站根目录 ``` #### 3️⃣ 前端部署 ```bash # 进入前端目录 cd frontend # 安装依赖 npm install # 或使用 yarn yarn install # 开发环境启动 npm run dev # 生产环境构建 npm run build ``` **📝 配置API代理** 编辑 `vite.config.ts`,确保API代理配置正确: ```typescript export default defineConfig({ server: { proxy: { '/api': { target: 'http://localhost:8000', // 后端服务地址 changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '/api') } } } }) ``` #### 4️⃣ 生产环境部署 **🐳 使用 Docker 部署(推荐)** ```bash # 构建镜像 docker-compose build # 启动服务 docker-compose up -d ``` **🌐 传统服务器部署** **后端部署** 1. 将 `backend` 目录上传到服务器 2. 配置 Nginx 虚拟主机,指向 `backend/public` 目录 3. 设置 PHP-FPM 4. 配置 `.env` 文件 5. 设置目录权限:`chmod -R 755 runtime/` **前端部署** 1. 本地执行 `npm run build` 构建 2. 将 `dist` 目录上传到服务器 3. 配置 Nginx 静态文件服务 4. 设置 API 代理 **📋 Nginx 配置示例** ```nginx # 前端配置 server { listen 80; server_name yourdomain.com; root /var/www/accountmanage/frontend/dist; index index.html; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } # 后端配置 server { listen 8000; server_name yourdomain.com; root /var/www/accountmanage/backend/public; index index.php; location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` ### 🔐 第三方登录配置(可选) 如需启用第三方登录,请在 `.env` 文件中配置相应参数: ```env # 微信配置 WECHAT_APP_ID = your_wechat_appid WECHAT_APP_SECRET = your_wechat_secret # 支付宝配置 ALIPAY_APP_ID = your_alipay_appid ALIPAY_PRIVATE_KEY = your_alipay_private_key ALIPAY_PUBLIC_KEY = your_alipay_public_key # 抖音配置 DOUYIN_APP_ID = your_douyin_appid DOUYIN_APP_SECRET = your_douyin_secret ``` ## 📖 使用指南 ### 🔐 安全设计原理 #### 加密流程 1. **主密码设置**:用户首次使用时设置主密码,仅存储在客户端 2. **密钥派生**:使用 PBKDF2 算法从主密码派生加密密钥 3. **数据加密**:所有敏感数据(账号、密码、备注)在客户端加密 4. **安全传输**:使用 HTTPS 传输,服务端仅存储加密后的数据 5. **零知识架构**:服务端无法解密用户数据,保障隐私安全 #### 权限控制 - **JWT 认证**:基于 Token 的无状态认证机制 - **设备管理**:限制登录设备数量,支持远程设备管理 - **操作审计**:详细记录用户操作日志 - **API 限流**:防止暴力破解和恶意攻击 ### 📱 功能模块 #### 👤 用户系统 - ✅ 用户注册和登录 - ✅ 第三方平台授权登录 - ✅ 多平台账号绑定 - ✅ 个人资料管理 - ✅ 设备登录管理 - ✅ 操作日志查看 #### 🗂️ 账号管理 - ✅ 账号分类管理 - ✅ 账号信息增删改查 - ✅ 密码强度检测 - ✅ 数据加密存储 - ✅ 高级搜索和筛选 (7个筛选条件) - ✅ 批量操作 (多选/导出/删除) - ✅ 数据导入导出 (JSON/CSV) - ✅ 搜索历史记录 #### 🛡️ 安全工具 - ✅ 随机密码生成器 - ✅ 密码强度评估 - ✅ 主密码验证 - ✅ 主密码会话管理 - ✅ 自动锁定功能 - ✅ 安全设置管理 #### 🎨 用户体验 - ✅ 深色模式 (Light/Dark/Auto) - ✅ 国际化 (简体中文/English) - ✅ PWA离线支持 - ✅ 快捷键操作 (5个快捷键) - ✅ 骨架屏加载 - ✅ Toast通知提示 ### 🔌 API接口 #### 认证相关 ``` POST /api/auth/login # 用户登录 POST /api/auth/register # 用户注册 POST /api/auth/logout # 退出登录 POST /api/auth/refresh-token # 刷新Token ``` #### 账号管理 ``` GET /api/accounts # 获取账号列表 POST /api/accounts # 创建账号 GET /api/accounts/{id} # 获取账号详情 PUT /api/accounts/{id} # 更新账号 DELETE /api/accounts/{id} # 删除账号 POST /api/accounts/{id}/decrypt # 解密账号数据 ``` #### 分类管理 ``` GET /api/categories # 获取分类列表 POST /api/categories # 创建分类 PUT /api/categories/{id} # 更新分类 DELETE /api/categories/{id} # 删除分类 ``` #### 用户管理 ``` GET /api/user/info # 获取用户信息 PUT /api/user/info # 更新用户信息 GET /api/user/devices # 获取设备列表 DELETE /api/user/devices # 删除设备 GET /api/user/logs # 获取操作日志 ``` 详细的API文档请参考:[API Documentation](docs/api.md) ## 🐛 常见问题 ### 部署相关 **Q: 数据库连接失败?** A: 检查 `.env` 文件中的数据库配置,确保数据库服务正常运行,用户权限正确。 **Q: 前端访问后端API 404?** A: 检查 Nginx 配置中的 API 代理设置,确保后端服务正常运行在对应端口。 **Q: PHP报错找不到类?** A: 执行 `composer install` 安装依赖,确保自动加载正常。 ### 功能相关 **Q: 忘记主密码怎么办?** A: 主密码忘记后无法恢复数据,这是零知识架构的特性。建议设置主密码提示。 **Q: 数据如何备份?** A: 可以使用数据导出功能,定期备份加密数据到本地。 **Q: 支持团队共享吗?** A: 当前版本为个人版本,团队协作功能在开发计划中。 ## 🤝 贡献指南 我们欢迎所有形式的贡献!请查看 [贡献指南](CONTRIBUTING.md) ### 贡献流程 1. Fork 本仓库 2. 创建特性分支:`git checkout -b feature/amazing-feature` 3. 提交更改:`git commit -m 'Add amazing feature'` 4. 推送分支:`git push origin feature/amazing-feature` 5. 提交 Pull Request ### 开发规范 - 遵循 [PSR-12](https://www.php-fig.org/psr/psr-12/) PHP 编码规范 - 使用 [Vue 3 官方风格指南](https://vuejs.org/style-guide/) - 编写单元测试 - 更新相关文档 ## 🗺️ 开发路线图 ### ✅ 已完成 (100%) - [x] 基础架构搭建 - [x] 用户认证系统 - [x] 账号管理功能 - [x] 端到端加密 (5种加密算法) - [x] 设备管理 - [x] 第三方登录 (微信/支付宝/抖音) - [x] 数据导入/导出功能 (JSON/CSV) - [x] 密码强度检测优化 - [x] 高级搜索功能 (7个筛选条件) - [x] 批量操作 (多选/导出/删除) - [x] 快捷键支持 (5个快捷键) - [x] 骨架屏加载动画 - [x] 深色模式 (Light/Dark/Auto) - [x] 国际化 (简体中文/English) - [x] PWA离线支持 - [x] 主密码修改流程优化 - [x] 账号注销功能 - [x] 数据清空功能 ### 🔮 未来计划 - [ ] 移动端原生APP - [ ] 浏览器扩展插件 - [ ] 团队协作功能 - [ ] 更多语言支持 - [ ] 数据分析面板 - [ ] PWA推送通知 ## 📄 许可证 本项目采用 [MIT 许可证](LICENSE) ## 🌟 Star History [![Star History Chart](https://api.star-history.com/svg?repos=your-username/accountmanage&type=Date)](https://star-history.com/#your-username/accountmanage&Date) ## 💬 联系我们 - 📧 **邮箱**:support@accountmanage.com - 🐛 **问题反馈**:[Issues](https://gitee.com/your-username/accountmanage/issues) - 💭 **功能建议**:[Discussions](https://gitee.com/your-username/accountmanage/issues) - 📖 **在线文档**:[文档中心](https://docs.accountmanage.com) ---
**⚠️ 安全提醒** 1. 🔐 请设置复杂的主密码并牢记 2. 💾 定期备份重要数据 3. 🌐 生产环境务必使用 HTTPS 4. 🔄 及时更新系统和依赖包 **Made with ❤️ by AccountManage Team**