- 替换开发环境API基础URL为本地服务地址 - 实现签名URL本地缓存机制,解决微信按URL缓存图片导致重复下载问题 - 添加缓存清理功能,包括过期清理和按需删除特定缓存项 - 集成阿里云OSS上传功能,支持直传减少服务器带宽占用 - 优化头像地址处理逻辑,统一使用签名缓存避免地址频繁变化 - 移除过时的OSS上传示例文件oss-upload.js - 更新课程页面实现跳转第三方小程序功能 - 调整打卡记录图片地址获取方式,统一使用新的签名缓存逻辑 - 优化图片上传流程,增加压缩处理和批量上传支持 - 完善认证模块中的缓存清理逻辑,切换账号时清除相关图片缓存 - 添加后端环境变量配置模板和代理文档说明
明缘进阶场 API(单 FastAPI 服务)
单服务承载 auth / pages / checkin / plan / profile / course-vote / survey / feedback,统一挂载在 /api/v1 下。
部署
-
安装依赖:
pip install -r server/requirements.txt -
配置环境变量(复制
server/.env.example后填写):WECHAT_APPID/WECHAT_SECRET:微信小程序凭证JWT_SECRET:JWT 签名密钥(>=32 字节随机串)ADMIN_KEY:反馈解决接口的管理密钥MYSQL_*:mys_info_test数据库连接SURVEY_DB:问卷库myxhxcPHONE_HMAC_KEY:手机号 HMAC 密钥,必须与既有phone_encrypted生成一致(默认MingYuan2026AuthKey)H5_BASE_URL:H5 模块基础地址(默认https://muguaclub.cn)FEEDBACK_DIR/COURSE_VOTES_FILE:文件存储路径OSS_ACCESS_KEY_ID/OSS_ACCESS_KEY_SECRET/OSS_ENDPOINT/OSS_BUCKET/OSS_PUBLIC_ENDPOINT/OSS_URL_EXPIRE/OSS_POST_EXPIRE:对象存储(打卡附件 / 头像) —— 2026-09-22 起图片只存 OSS,没有磁盘兜底,这四项缺任意一项上传会直接 503- 注:原
PLAN_ATTACH_DIR/AVATAR_DIR/STATIC_ROOT已随磁盘读路径删除
-
执行 wechat_openid 迁移(一次性):
mysql mys_info_test < server/migrations/001_add_wechat_openid_column.sql -
启动:
uvicorn server.main:app --host 0.0.0.0 --port 8000 -
健康检查:
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。
测试
python -m pytest tests -q
Description
Languages
Python
82.7%
HTML
11%
Shell
3.7%
Dockerfile
2.6%