# ZJPB v3.0 版本更新日志 **发布日期:** 2025-02-06 **版本代号:** User System **重要程度:** 🔴 重大更新 --- ## 🎯 核心功能 ### 1. 用户系统 (User System) #### ✨ 用户注册与登录 - 用户注册功能(用户名 + 密码) - 用户登录/登出 - 多用户类型支持(Admin 和 User 分离) - 会话管理和状态持久化 #### ⭐ 工具收藏功能 - 一键收藏/取消收藏工具 - 收藏状态实时同步 - 收藏按钮视觉反馈(未收藏/已收藏状态) - 未登录用户引导登录 #### 📁 收藏分组管理 - 创建自定义文件夹 - 文件夹增删改查 - 收藏移动到不同文件夹 - 文件夹图标自定义 #### 👤 用户中心 - 个人资料展示 - 收藏统计(收藏数、文件夹数) - 最近收藏列表 - 收藏列表页面(网格展示 + 分页) --- ## 🗄️ 数据库变更 ### 新增表 **users(用户表)** ```sql - id: 主键 - username: 用户名(唯一,索引) - password_hash: 密码哈希 - email: 邮箱(可选,唯一,索引) - avatar: 头像URL - bio: 个人简介 - is_active: 是否启用 - is_public_profile: 是否公开资料 - created_at: 创建时间 - last_login: 最后登录时间 ``` **folders(收藏分组表)** ```sql - id: 主键 - user_id: 用户ID(外键,索引) - name: 文件夹名称 - description: 描述 - icon: 图标emoji - sort_order: 排序权重 - is_public: 是否公开 - public_slug: 公开链接标识(唯一,索引) - created_at: 创建时间 - 唯一约束: (user_id, name) ``` **collections(收藏记录表)** ```sql - id: 主键 - user_id: 用户ID(外键,索引) - site_id: 网站ID(外键,索引) - folder_id: 文件夹ID(外键,索引,可选) - note: 备注 - created_at: 创建时间 - updated_at: 更新时间 - 唯一约束: (user_id, site_id, folder_id) - 复合索引: (user_id, folder_id) ``` --- ## 🔌 API 端点 ### 认证 API ``` POST /register - 用户注册 POST /login - 用户登录 GET /logout - 用户登出 GET /api/auth/status - 获取登录状态 ``` ### 收藏 API(需登录) ``` POST /api/collections/toggle - 收藏/取消收藏 GET /api/collections/status/:code - 查询收藏状态 GET /api/collections/list - 获取收藏列表 PUT /api/collections/:id/note - 更新收藏备注 PUT /api/collections/:id/move - 移动收藏 ``` ### 文件夹 API(需登录) ``` GET /api/folders - 获取文件夹列表 POST /api/folders - 创建文件夹 PUT /api/folders/:id - 更新文件夹 DELETE /api/folders/:id - 删除文件夹 ``` ### 用户中心 ``` GET /user/profile - 用户中心主页 GET /user/collections - 收藏列表页面 PUT /api/user/profile - 更新用户资料 ``` --- ## 🎨 前端更新 ### 新增页面 1. **用户注册页面** (`/register`) - Tailwind CSS 设计 - 表单验证 - 密码可见性切换 2. **用户登录页面** (`/login`) - 与管理员登录页面风格一致 - 支持 next 参数跳转 3. **用户中心** (`/user/profile`) - 侧边栏导航 - 统计卡片 - 最近收藏展示 4. **收藏列表** (`/user/collections`) - 文件夹标签切换 - 工具网格展示 - 分页支持 - 空状态提示 ### 界面优化 - **导航栏**:登录后显示用户头像和下拉菜单 - **工具详情页**:添加收藏按钮(带动画效果) - **响应式设计**:所有新页面支持移动端 --- ## 🔒 安全增强 ### 权限隔离 - ✅ Admin 和 User 完全分离 - ✅ 普通用户无法访问管理后台 - ✅ 管理员无法使用收藏功能 - ✅ 所有管理员 API 添加权限检查 ### 受保护的路由(共14个) **Flask-Admin 后台:** - SecureModelView(网站、标签、新闻等管理) - SecureAdminIndexView(控制台首页) **管理员页面:** - /admin/change-password - /admin/seo-tools - /admin/batch-import **管理员 API:** - /api/fetch-website-info - /api/upload-logo - /api/generate-features - /api/generate-description - /api/generate-tags - /api/fetch-site-news - /api/fetch-all-news - /api/generate-static-sitemap - /api/notify-search-engines ### 密码安全 - Werkzeug 密码哈希 - 最短密码长度:6位 - 最短用户名长度:3位 --- ## 📁 文件变更 ### 新增文件(7个) ``` templates/auth/register.html - 注册页面 templates/auth/login.html - 登录页面 templates/user/profile.html - 用户中心 templates/user/collections.html - 收藏列表 create_user_tables.py - 数据库迁移脚本 USER_SYSTEM_README.md - 用户系统文档 CHANGELOG_v3.0.md - 本更新日志 ``` ### 修改文件(4个) ``` models.py - 新增 User、Folder、Collection 模型 app.py - 新增路由和 API,权限检查 templates/base_new.html - 导航栏用户菜单 templates/detail_new.html - 收藏按钮 ``` --- ## 🚀 部署指南 ### 1. 数据库迁移 ```bash python create_user_tables.py ``` ### 2. 启动应用 ```bash python app.py ``` ### 3. 测试流程 1. 访问 `/register` 注册新用户 2. 登录后访问工具详情页 3. 点击"收藏"按钮测试 4. 访问 `/user/collections` 查看收藏 --- ## ⚠️ 破坏性变更 ### Admin 模型变更 - `Admin.get_id()` 现在返回 `"admin:{id}"` 格式 - 旧的管理员账号需要重新登录一次 ### 权限系统 - 所有管理员路由现在强制检查用户类型 - 普通用户无法访问任何管理功能 --- ## 🔄 兼容性 - ✅ 向后兼容 v2.x 的所有功能 - ✅ 现有管理员账号无需迁移 - ✅ 现有网站数据完全兼容 - ⚠️ 管理员需要重新登录一次 --- ## 📊 性能优化 - 收藏列表查询使用 JOIN 避免 N+1 问题 - 添加必要的数据库索引 - 分页支持大量收藏数据 --- ## 🎯 后续计划(v3.1+) ### 待实现功能 - [ ] 收藏备注编辑 UI - [ ] 文件夹拖拽排序 - [ ] 批量收藏操作 - [ ] 收藏导出(CSV/JSON) - [ ] 公开收藏列表(分享功能) - [ ] 收藏统计图表 - [ ] 邮箱验证 - [ ] 忘记密码 - [ ] 头像上传 - [ ] 第三方登录(微信、GitHub) --- ## 👥 贡献者 - **开发:** Claude Sonnet 4.5 - **需求:** 项目团队 - **测试:** 待进行 --- ## 📝 注意事项 1. **首次部署必须运行数据库迁移脚本** 2. **管理员和普通用户使用不同的登录入口** - 管理员:`/admin/login` - 普通用户:`/login` 3. **删除用户会级联删除其所有收藏和文件夹** 4. **建议在生产环境部署前进行完整测试** --- ## 🐛 已知问题 - 无 --- ## 📞 技术支持 如有问题,请查看: - 用户系统文档:`USER_SYSTEM_README.md` - Flask-Login 文档:https://flask-login.readthedocs.io/ - SQLAlchemy 文档:https://docs.sqlalchemy.org/ --- **版本:** v3.0.0 **发布状态:** ✅ 稳定版 **推荐升级:** 是