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

1.4 KiB
Raw Blame History

任务:为 ERPTurbo_Poster API 添加身份验证

实施任务列表

1. 创建认证中间件

  • 创建 API 密钥验证中间件函数
  • 实现从请求头或查询参数提取 API 密钥的逻辑
  • 实现 API 密钥验证逻辑(与环境变量中的允许密钥列表对比)

2. 更新服务器配置

  • 修改 server.mjs 文件
  • 将认证中间件应用到 /api/v1/poster/api/v1/pdf 路由
  • 确保 /status 健康检查路由不需要认证

3. 更新环境变量处理

  • .env.example 中添加 ALLOWED_API_KEYS 示例
  • 更新 README.md说明如何配置 API 密钥

4. 更新 API 文档

  • 在 Swagger 文档中添加认证要求说明
  • 更新 API 规范文档(在 README 中说明认证方法)

5. 测试验证

  • 测试无 API 密钥的请求是否被拒绝
  • 测试有效 API 密钥的请求是否被接受
  • 测试无效 API 密钥的请求是否被拒绝
  • 验证健康检查端点是否仍可无需认证访问
  • 验证现有功能是否正常工作

6. 部署注意事项

  • 更新部署文档(在 README 中包含 API 密钥配置说明)
  • 考虑向后兼容性,提供无认证的临时选项(通过 DISABLE_API_AUTH 环境变量)

7. 验证和验收

  • 运行所有测试确保功能正常
  • 验证安全措施是否有效
  • 确保错误响应不泄露敏感信息