Files
zjpb.net/CHANGELOG_v3.0.md
Jowe 2067fb1712 feat: v3.0 - 用户系统和收藏功能
核心功能:
- 用户注册/登录系统(用户名+密码)
- 工具收藏功能(一键收藏/取消收藏)
- 收藏分组管理(文件夹)
- 用户中心(个人资料、收藏列表)

数据库变更:
- 新增 users 表(用户信息)
- 新增 folders 表(收藏分组)
- 新增 collections 表(收藏记录)

安全增强:
- Admin 和 User 完全隔离
- 修复14个管理员路由的权限漏洞
- 所有管理功能添加用户类型检查

新增文件:
- 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 - 版本更新日志

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 19:19:05 +08:00

7.0 KiB
Raw Blame History

ZJPB v3.0 版本更新日志

发布日期: 2025-02-06 版本代号: User System 重要程度: 🔴 重大更新


🎯 核心功能

1. 用户系统 (User System)

用户注册与登录

  • 用户注册功能(用户名 + 密码)
  • 用户登录/登出
  • 多用户类型支持Admin 和 User 分离)
  • 会话管理和状态持久化

工具收藏功能

  • 一键收藏/取消收藏工具
  • 收藏状态实时同步
  • 收藏按钮视觉反馈(未收藏/已收藏状态)
  • 未登录用户引导登录

📁 收藏分组管理

  • 创建自定义文件夹
  • 文件夹增删改查
  • 收藏移动到不同文件夹
  • 文件夹图标自定义

👤 用户中心

  • 个人资料展示
  • 收藏统计(收藏数、文件夹数)
  • 最近收藏列表
  • 收藏列表页面(网格展示 + 分页)

🗄️ 数据库变更

新增表

users用户表

- id: 主键
- username: 用户名(唯一,索引)
- password_hash: 密码哈希
- email: 邮箱(可选,唯一,索引)
- avatar: 头像URL
- bio: 个人简介
- is_active: 是否启用
- is_public_profile: 是否公开资料
- created_at: 创建时间
- last_login: 最后登录时间

folders收藏分组表

- id: 主键
- user_id: 用户ID(外键,索引)
- name: 文件夹名称
- description: 描述
- icon: 图标emoji
- sort_order: 排序权重
- is_public: 是否公开
- public_slug: 公开链接标识(唯一,索引)
- created_at: 创建时间
- 唯一约束: (user_id, name)

collections收藏记录表

- 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. 数据库迁移

python create_user_tables.py

2. 启动应用

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. 建议在生产环境部署前进行完整测试

🐛 已知问题


📞 技术支持

如有问题,请查看:


版本: v3.0.0 发布状态: 稳定版 推荐升级: