Files
tech-forum/README.md
hubian cb4b7d5363 feat: v1.1.0 安全重构
- 后台添加登录验证(Session + JWT双重验证)
- JSON存储改为SQLite数据库,解决并发问题
- API密钥移至config.py,支持环境变量覆盖
- SECRET_KEY改为随机生成
- 新增管理员登录页面
- 修复README.md乱码
- 更新.gitignore忽略敏感配置
2026-04-12 16:56:35 +08:00

169 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 技术论坛与技术分享网站
> 技术交流、工具分享、问答讨论社区
## 功能特点
### 📝 技术交流
- 发布技术讨论帖子
- 评论回复互动
- 点赞收藏
- 标签分类
### 🔧 工具分享
- 创建工具/框架分享主题
- 子主题分支讨论
- 问题追问功能
- 关注感兴趣的主题
### 👤 用户系统
- 用户名注册
- 邮箱(必填)
- 手机号(可选)
- 密码确认
### 🔐 后台管理
- 管理员登录验证
- 用户管理
- 帖子管理(置顶、删除)
- 主题管理
- 数据统计
## 快速开始
### 安装依赖
```bash
pip install -r requirements.txt
```
### 配置(可选)
可以创建 `config.local.py` 覆盖默认配置:
```python
# 管理员账户
ADMIN_USERNAME = 'your_admin'
ADMIN_PASSWORD = 'your_password'
# 或使用环境变量
export TECH_FORUM_ADMIN_USER='your_admin'
export TECH_FORUM_ADMIN_PASS='your_password'
```
### 启动主服务
```bash
python backend/app.py
```
访问地址: http://localhost:19004
### 启动后台管理
```bash
python admin/app.py
```
后台地址: http://localhost:19005
默认账号: admin / admin123
## 项目结构
```
tech-forum/
├── config.py # 配置文件
├── models.py # 数据库模型SQLite
├── backend/
│ └── app.py # Flask后端API
├── frontend/
│ ├── index.html # 首页
│ ├── login.html # 登录
│ ├── register.html # 注册
│ ├── create.html # 发帖
│ ├── post.html # 帖子详情
│ ├── topic.html # 主题详情
│ └── user.html # 用户主页
├── admin/
│ ├── app.py # 后台管理(带登录验证)
│ └── templates/
│ ├── index.html # 仪表盘
│ ├── login.html # 管理员登录
│ ├── users.html # 用户管理
│ ├── posts.html # 帖子管理
│ └── topics.html # 主题管理
├── data/
│ └ tech_forum.db # SQLite数据库自动创建
└── uploads/ # 上传文件
```
## API接口
### 用户认证
- POST /api/register - 注册
- POST /api/login - 登录
- GET /api/user - 获取当前用户
### 帖子
- GET /api/posts - 获取帖子列表
- POST /api/posts - 发布帖子
- GET /api/posts/:id - 获取帖子详情
- POST /api/posts/:id/reply - 回复帖子
- POST /api/posts/:id/like - 点赞
### 主题
- GET /api/topics - 获取主题列表
- POST /api/topics - 创建主题
- GET /api/topics/:id - 获取主题详情
- POST /api/topics/:id/subtopic - 添加子主题
- POST /api/topics/:id/question - 提问
- POST /api/topics/:id/question/:qid/answer - 回答问题
- POST /api/topics/:id/follow - 关注主题
### 其他
- GET /api/tags - 获取热门标签
- GET /api/search - 搜索
## 安全改进
### v1.1.0 重构内容
1. **后台登录验证**
- 所有后台API需要管理员登录
- Session + JWT双重验证
- 未登录自动跳转登录页
2. **配置文件分离**
- 敏感信息移至 `config.py`
- 支持环境变量覆盖
- SECRET_KEY 自动随机生成
3. **SQLite数据库**
- 替换JSON文件存储
- 解决并发写入问题
- 数据关系完整性
4. **API密钥保护**
- LLM密钥从代码移至配置
- 支持环境变量设置
## 版本历史
### v1.1.0 (2026-04-12)
- 重构:后台添加登录验证
- 重构JSON存储改为SQLite数据库
- 重构API密钥移至配置文件
- 修复SECRET_KEY改为随机生成
- 新增:管理员登录页面
### v0.1.0 (2026-04-08)
- 初始版本
- 技术交流帖子功能
- 工具分享主题功能
- 用户注册登录
- 评论回复点赞
## License
MIT