Files
wechat_backend/README.md
王宏豪 f3fbd0377a feat(init): 添加完整的认证和业务路由模块
- 实现微信登录、手机号绑定、token验证和登出功能
- 添加打卡系统,支持正常、迟到、请假等状态记录
- 集成课程投票功能,支持多课程选择和评分评论
- 开发反馈系统,支持图文反馈提交和管理员处理
- 构建首页页面模块,动态展示学习资源和个人信息
- 设计计划管理系统,支持周/月/年计划制定和跟踪
- 实现小组计划统计和历史记录查询功能
- 完善用户认证会话管理和数据库交互逻辑
2026-09-03 16:43:11 +08:00

55 lines
1.8 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.
# 明缘进阶场 API(单 FastAPI 服务)
单服务承载 auth / pages / checkin / plan / profile / course-vote / survey / feedback,统一挂载在 `/api/v1` 下。
## 部署
1. 安装依赖:
```bash
pip install -r server/requirements.txt
```
2. 配置环境变量(复制 `server/.env.example` 后填写):
- `WECHAT_APPID` / `WECHAT_SECRET`:微信小程序凭证
- `JWT_SECRET`:JWT 签名密钥(>=32 字节随机串)
- `ADMIN_KEY`:反馈解决接口的管理密钥
- `MYSQL_*`:`mys_info_test` 数据库连接
- `SURVEY_DB`:问卷库 `myxhxc`
- `PHONE_HMAC_KEY`:手机号 HMAC 密钥,必须与既有 `phone_encrypted` 生成一致(默认 `MingYuan2026AuthKey`)
- `H5_BASE_URL`:H5 模块基础地址(默认 `https://muguaclub.cn`)
- `FEEDBACK_DIR` / `COURSE_VOTES_FILE` / `PLAN_ATTACH_DIR`:文件存储路径
3. 执行 wechat_openid 迁移(一次性):
```bash
mysql mys_info_test < server/migrations/001_add_wechat_openid_column.sql
```
4. 启动:
```bash
uvicorn server.main:app --host 0.0.0.0 --port 8000
```
5. 健康检查:`GET /api/v1/health` 返回 `{"ok": true}`。
## 认证
- `POST /api/v1/auth/wechat-login`:`{code}`,`wechat_openid` 命中自动登录;未命中返回 `need_phone=true`。
- `POST /api/v1/auth/bind-phone`:`{code, phone_code}`,手机号匹配后回填 `wechat_openid` 并登录。
- 受保护接口使用 `Authorization: Bearer <JWT>`,不使用 cookie。
## 小程序
- 目录:`miniprogram/`,四 tab(首页/打卡/计划/我的)。
- 首页调用 `GET /api/v1/pages/home` 按返回顺序渲染,模块通过 web-view 打开并附带 `?token=`。
- H5 引入 `h5/shared/auth.js` 后,`fetch` 自动附带 Bearer token。
## 测试
```bash
python -m pytest tests -q
```