From 4ded9e7d49f50de57f531c54ff5eff05f90d3169 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 24 Jan 2026 23:41:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(oauth):=20=E4=B8=BA=E5=88=9D=E5=A7=8B=20OAu?= =?UTF-8?q?th=20=E6=8E=88=E6=9D=83=E6=B7=BB=E5=8A=A0=20LoadCodeAssist=20?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - 初始授权时 LoadCodeAssist 没有重试机制,失败后直接跳过 - 导致账号创建时就可能缺失 project_id - 之后每次刷新都因为 missing_project_id 报错 修复: - 统一使用 loadProjectIDWithRetry 方法(最多4次尝试) - 初始授权和token刷新使用相同的重试策略 - 保留原注释说明部分账户可能没有 project_id Co-Authored-By: Claude Sonnet 4.5 --- .../internal/service/antigravity_oauth_service.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/internal/service/antigravity_oauth_service.go b/backend/internal/service/antigravity_oauth_service.go index 3850fa57..fa8379ed 100644 --- a/backend/internal/service/antigravity_oauth_service.go +++ b/backend/internal/service/antigravity_oauth_service.go @@ -142,12 +142,13 @@ func (s *AntigravityOAuthService) ExchangeCode(ctx context.Context, input *Antig result.Email = userInfo.Email } - // 获取 project_id(部分账户类型可能没有) - loadResp, _, err := client.LoadCodeAssist(ctx, tokenResp.AccessToken) - if err != nil { - fmt.Printf("[AntigravityOAuth] 警告: 获取 project_id 失败: %v\n", err) - } else if loadResp != nil && loadResp.CloudAICompanionProject != "" { - result.ProjectID = loadResp.CloudAICompanionProject + // 获取 project_id(部分账户类型可能没有),失败时重试 + projectID, loadErr := s.loadProjectIDWithRetry(ctx, tokenResp.AccessToken, proxyURL, 3) + if loadErr != nil { + fmt.Printf("[AntigravityOAuth] 警告: 获取 project_id 失败(重试后): %v\n", loadErr) + result.ProjectIDMissing = true + } else { + result.ProjectID = projectID } return result, nil