- 新增海报生成接口,支持从网页URL或HTML内容生成海报图像 - 新增PDF生成接口,支持从网页URL或HTML内容生成PDF文档 - 添加Swagger API文档注释,完善接口描述和参数说明 - 实现HTML内容参数支持,允许直接传入HTML结构生成海报/PDF - 添加输入验证和标准化响应格式 - 引入DOMPurify库对HTML内容进行安全过滤 - 更新环境变量配置,支持API密钥认证和CORS设置 - 优化上传逻辑,统一返回标准响应结构 - 添加构建脚本支持Docker镜像打包和推送
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# 任务:为 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] 确保错误响应不泄露敏感信息 |