# 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
# 🔐 账号密码管理器





一个基于 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
[](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**