Files

31 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

# 头像修复完成 — 后端代理方案
## 一句话
通过新建后端头像代理端点 `/api/avatar/proxy`,不修改 nginx 安全头,解决 COEP / Mixed Content / CSP 三层拦截导致的头像不显示问题。
## 验证结果
- **API 代理**:✅ 正常返回 image/jpeg42KB / 65KB 测试均通过)
- **浏览器控制台**:✅ 零 COEP / Mixed Content / CSP 错误
- **Network 请求**:✅ 3 个头像全部通过 `/api/avatar/proxy?url=...` 200 加载
- **视觉验证**:✅ 坐席工作台头像正常显示(左侧会话列表 + 顶部导航栏)
## 修改文件
| 文件 | 操作 |
|-----|------|
| `backend/app/services/avatar_service.py` | 修改(新增 `wrap_avatar_url` + HTTP→HTTPS 转换) |
| `backend/app/services/session_service.py` | 修改(3 个头像返回路径统一包装) |
| `backend/app/api/avatar.py` | 新建(代理端点 + SSRF 白名单) |
| `backend/app/api/router.py` | 修改(注册路由) |
## 已部署
- 4 个文件已上传 → 复制到 `/opt/wecom-it-desk/app/``docker compose restart backend`
- Redis 头像缓存 `employee:avatar:*` 已清除(3 个 key
- 代理端点即时生效
## 关于"获取坐席列表失败"
本次浏览器验证未复现该错误。如持续出现,需检查后端日志中 `/api/agents` 的具体报错。
## 交付物
- `deliverables/software-bugfix-avatar-coep-delivery-2026-07-10.md` — 详细修复报告
- 截图 `screenshot-1783683005062.png` — 验证截图