# 系統上線前測試代碼清理計劃 ## 🎯 目標 清理所有開發測試代碼,確保系統安全上線,特別是解決圖片生成功能的用戶認證問題。 ## 🚨 **高優先級 - 必須修復** ### 1. 固定測試用戶 ID 問題 ⭐ **最重要** **影響**:🔴 **阻止圖片生成功能運行** **位置**: - `Controllers/BaseController.cs:79` - `Controllers/ImageGenerationController.cs:160` **問題**: ```csharp // 當前代碼 return Guid.Parse("00000000-0000-0000-0000-000000000001"); // 應該修復為 var userIdClaim = User.FindFirst(ClaimTypes.NameIdentifier)?.Value ?? User.FindFirst("sub")?.Value; return Guid.Parse(userIdClaim); ``` **後果**: - 圖片生成使用錯誤的用戶 ID - 外鍵約束失敗,功能完全無法使用 ### 2. 開發環境認證繞過 **影響**:🟠 **安全風險** **位置**: - `Controllers/FlashcardsController.cs:16` - `[AllowAnonymous] // 暫時開放以測試` - `Controllers/ImageGenerationController.cs:10` - `[AllowAnonymous] // 暫時移除認證要求` - `Controllers/AIController.cs:10` - `[AllowAnonymous]` **修復**:移除 `[AllowAnonymous]` 或改為 `[Authorize]` ### 3. 開發專用 JWT Secret **影響**:🟠 **安全風險** **位置**: - `Program.cs:93` - `Extensions/ServiceCollectionExtensions.cs:174` - `Controllers/AuthController.cs:181` **問題**: ```csharp ?? "dev-secret-minimum-32-characters-long-for-jwt-signing-in-development-mode-only" ``` **修復**:確保生產環境使用正確的環境變數 ## 🟡 **中優先級 - 建議修復** ### 4. 開發專用配置 **位置**: - `Program.cs:49` - `options.ApiKey = "test-key"` - `Models/Configuration/GeminiOptionsValidator.cs:15` - 允許 `"test-key"` ### 5. CORS 開發設定 **位置**: - `Program.cs:115` - localhost CORS 設定 - `Program.cs:185` - 開發環境寬鬆 CORS ### 6. 其他開發標記 **位置**: - `Controllers/ImageGenerationController.cs:134` - `TODO: 實現分頁查詢邏輯` - `Controllers/ImageGenerationController.cs:162` - `TODO: 恢復真實認證後改回` ## ✅ **可保留 - 正確的生產實務** ### 7. 環境判斷邏輯 - `if (builder.Environment.IsDevelopment())` - 正確的條件判斷 - 環境變數讀取邏輯 - 配置驗證邏輯 ### 8. 測試相關檔案 - `frontend/public/test-register.html` - 不影響生產環境 - 各種文檔中的測試範例 - 測試套件依賴 ## 🔧 **關鍵發現** ### 圖片生成失敗的根本原因 1. **用戶認證問題**:使用固定測試 ID `00000000-0000-0000-0000-000000000001` 2. **外鍵約束失敗**:嘗試為不存在的用戶創建圖片生成請求 3. **API keys 正常**:所有必要的 API keys 都已正確配置 ### Google Cloud Storage 狀態 - ✅ **認證正常**:gcloud auth 已設置 - ✅ **配置正確**:專案和儲存桶設定完整 - ✅ **服務初始化**:GoogleCloudImageStorageService 正常運行 - ✅ **儲存就緒**:圖片將正確儲存到 `gs://dramaling-images/examples/` ## 🚀 **修復順序建議** 1. **立即修復**:用戶 ID hardcoding - 解決圖片生成問題 2. **安全加強**:移除 AllowAnonymous 標記 3. **配置清理**:確保生產環境配置安全 4. **測試驗證**:完整功能測試 ## 💡 **完成修復後的預期結果** - ✅ 圖片生成功能完全正常 - ✅ 圖片正確儲存到 Google Cloud Storage - ✅ 用戶認證安全保護 - ✅ 系統準備好安全上線