ERPTurbo_Poster/openspec/changes/archive/2025-11-20-add-api-authentication/tasks.md
shenyifei dc940d2598 feat(api): 添加海报和PDF生成功能
- 新增海报生成接口,支持从网页URL或HTML内容生成海报图像
- 新增PDF生成接口,支持从网页URL或HTML内容生成PDF文档
- 添加Swagger API文档注释,完善接口描述和参数说明
- 实现HTML内容参数支持,允许直接传入HTML结构生成海报/PDF
- 添加输入验证和标准化响应格式
- 引入DOMPurify库对HTML内容进行安全过滤
- 更新环境变量配置,支持API密钥认证和CORS设置
- 优化上传逻辑,统一返回标准响应结构
- 添加构建脚本支持Docker镜像打包和推送
2025-11-20 17:51:35 +08:00

37 lines
1.4 KiB
Markdown
Raw Permalink 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.

# 任务:为 ERPTurbo_Poster API 添加身份验证
## 实施任务列表
### 1. 创建认证中间件
- [x] 创建 API 密钥验证中间件函数
- [x] 实现从请求头或查询参数提取 API 密钥的逻辑
- [x] 实现 API 密钥验证逻辑(与环境变量中的允许密钥列表对比)
### 2. 更新服务器配置
- [x] 修改 `server.mjs` 文件
- [x] 将认证中间件应用到 `/api/v1/poster``/api/v1/pdf` 路由
- [x] 确保 `/status` 健康检查路由不需要认证
### 3. 更新环境变量处理
- [x]`.env.example` 中添加 `ALLOWED_API_KEYS` 示例
- [x] 更新 README.md说明如何配置 API 密钥
### 4. 更新 API 文档
- [x] 在 Swagger 文档中添加认证要求说明
- [x] 更新 API 规范文档(在 README 中说明认证方法)
### 5. 测试验证
- [x] 测试无 API 密钥的请求是否被拒绝
- [x] 测试有效 API 密钥的请求是否被接受
- [x] 测试无效 API 密钥的请求是否被拒绝
- [x] 验证健康检查端点是否仍可无需认证访问
- [x] 验证现有功能是否正常工作
### 6. 部署注意事项
- [x] 更新部署文档(在 README 中包含 API 密钥配置说明)
- [x] 考虑向后兼容性,提供无认证的临时选项(通过 DISABLE_API_AUTH 环境变量)
### 7. 验证和验收
- [x] 运行所有测试确保功能正常
- [x] 验证安全措施是否有效
- [x] 确保错误响应不泄露敏感信息