Commit 4ded9e7d authored by Ubuntu's avatar Ubuntu
Browse files

fix(oauth): 为初始 OAuth 授权添加 LoadCodeAssist 重试机制



问题:
- 初始授权时 LoadCodeAssist 没有重试机制,失败后直接跳过
- 导致账号创建时就可能缺失 project_id
- 之后每次刷新都因为 missing_project_id 报错

修复:
- 统一使用 loadProjectIDWithRetry 方法(最多4次尝试)
- 初始授权和token刷新使用相同的重试策略
- 保留原注释说明部分账户可能没有 project_id
Co-Authored-By: default avatarClaude Sonnet 4.5 <noreply@anthropic.com>
parent 716272a1
...@@ -142,12 +142,13 @@ func (s *AntigravityOAuthService) ExchangeCode(ctx context.Context, input *Antig ...@@ -142,12 +142,13 @@ func (s *AntigravityOAuthService) ExchangeCode(ctx context.Context, input *Antig
result.Email = userInfo.Email result.Email = userInfo.Email
} }
// 获取 project_id(部分账户类型可能没有) // 获取 project_id(部分账户类型可能没有),失败时重试
loadResp, _, err := client.LoadCodeAssist(ctx, tokenResp.AccessToken) projectID, loadErr := s.loadProjectIDWithRetry(ctx, tokenResp.AccessToken, proxyURL, 3)
if err != nil { if loadErr != nil {
fmt.Printf("[AntigravityOAuth] 警告: 获取 project_id 失败: %v\n", err) fmt.Printf("[AntigravityOAuth] 警告: 获取 project_id 失败(重试后): %v\n", loadErr)
} else if loadResp != nil && loadResp.CloudAICompanionProject != "" { result.ProjectIDMissing = true
result.ProjectID = loadResp.CloudAICompanionProject } else {
result.ProjectID = projectID
} }
return result, nil return result, nil
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment