feat: v1.1.0 安全重构

- 后台添加登录验证(Session + JWT双重验证)
- JSON存储改为SQLite数据库,解决并发问题
- API密钥移至config.py,支持环境变量覆盖
- SECRET_KEY改为随机生成
- 新增管理员登录页面
- 修复README.md乱码
- 更新.gitignore忽略敏感配置
This commit is contained in:
2026-04-12 16:56:35 +08:00
parent 301c286b8e
commit cb4b7d5363
8 changed files with 972 additions and 521 deletions
+66 -11
View File
@@ -22,6 +22,13 @@
- 手机号(可选)
- 密码确认
### 🔐 后台管理
- 管理员登录验证
- 用户管理
- 帖子管理(置顶、删除)
- 主题管理
- 数据统计
## 快速开始
### 安装依赖
@@ -30,6 +37,20 @@
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
@@ -46,12 +67,16 @@ python admin/app.py
后台地址: http://localhost:19005
默认账号: admin / admin123
## 项目结构
```
tech-forum/
├── config.py # 配置文件
├── models.py # 数据库模型(SQLite
├── backend/
│ └── app.py # FlaskåŽç«¯
│ └── app.py # Flask后端API
├── frontend/
│ ├── index.html # 首页
│ ├── login.html # 登录
@@ -60,12 +85,17 @@ tech-forum/
│ ├── post.html # 帖子详情
│ ├── topic.html # 主题详情
│ └── user.html # 用户主页
├── admin/
│ ├── app.py # 后台管理(带登录验证)
│ └── templates/
│ ├── index.html # 仪表盘
│ ├── login.html # 管理员登录
│ ├── users.html # 用户管理
│ ├── posts.html # 帖子管理
│ └── topics.html # 主题管理
├── data/
│ ├── users.json # 用户数æ®
│ ├── posts.json # 取孿•°æ®
│ └── topics.json # 主题数æ®
├── uploads/ # 上传文件
└── README.md
│ └ tech_forum.db # SQLite数据库(自动创建)
└── uploads/ # 上传文件
```
## API接口
@@ -95,8 +125,38 @@ tech-forum/
- 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)
- 初始版本
- 技术交流帖子功能
@@ -106,9 +166,4 @@ tech-forum/
## License
MIT™»å½•
- 评论回å¤ç‚¹èµž
## License
MIT