feat(Antigravity): 为无 project_id 的账户生成随机 project_id
部分账户类型(如 g1-pro-tier)API 不返回 cloudaicompanionProject, 但实际接受任意格式的 project_id,故添加随机生成逻辑作为兜底。
This commit is contained in:
@@ -177,3 +177,24 @@ func BuildAuthorizationURL(state, codeChallenge string) string {
|
|||||||
|
|
||||||
return fmt.Sprintf("%s?%s", AuthorizeURL, params.Encode())
|
return fmt.Sprintf("%s?%s", AuthorizeURL, params.Encode())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GenerateMockProjectID 生成随机 project_id(当 API 不返回时使用)
|
||||||
|
// 格式:{形容词}-{名词}-{5位随机字符}
|
||||||
|
func GenerateMockProjectID() string {
|
||||||
|
adjectives := []string{"useful", "bright", "swift", "calm", "bold"}
|
||||||
|
nouns := []string{"fuze", "wave", "spark", "flow", "core"}
|
||||||
|
|
||||||
|
randBytes, _ := GenerateRandomBytes(7)
|
||||||
|
|
||||||
|
adj := adjectives[int(randBytes[0])%len(adjectives)]
|
||||||
|
noun := nouns[int(randBytes[1])%len(nouns)]
|
||||||
|
|
||||||
|
// 生成 5 位随机字符(a-z0-9)
|
||||||
|
const charset = "abcdefghijklmnopqrstuvwxyz0123456789"
|
||||||
|
suffix := make([]byte, 5)
|
||||||
|
for i := 0; i < 5; i++ {
|
||||||
|
suffix[i] = charset[int(randBytes[i+2])%len(charset)]
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf("%s-%s-%s", adj, noun, string(suffix))
|
||||||
|
}
|
||||||
|
|||||||
@@ -149,6 +149,12 @@ func (s *AntigravityOAuthService) ExchangeCode(ctx context.Context, input *Antig
|
|||||||
result.ProjectID = loadResp.CloudAICompanionProject
|
result.ProjectID = loadResp.CloudAICompanionProject
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 兜底:随机生成 project_id
|
||||||
|
if result.ProjectID == "" {
|
||||||
|
result.ProjectID = antigravity.GenerateMockProjectID()
|
||||||
|
fmt.Printf("[AntigravityOAuth] 使用随机生成的 project_id: %s\n", result.ProjectID)
|
||||||
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user