fix(oauth): align antigravity OAuth metadata with official client headers
Fixes #1226 The Antigravity OAuth flow sent inconsistent client metadata between the token acquisition phase and the API usage phase. String enum values (IDE_UNSPECIFIED, PLATFORM_UNSPECIFIED) were used during OAuth token exchange + loadCodeAssist + onboardUser, while numeric enums (ideType: 9, platform: <computed>, pluginType: 2) were used in runtime API calls. Google detected this fingerprint mismatch and blocked 9router accounts. Replace all string enum occurrences with the correct numeric values: - src/lib/oauth/constants/oauth.js: loadCodeAssistClientMetadata now uses getOAuthPlatformEnum() for platform and numeric 9/2 for ideType/pluginType, matching getOAuthClientMetadata() - src/lib/oauth/services/antigravity.js: getMetadata() now delegates to getOAuthClientMetadata() instead of returning hardcoded strings - src/lib/oauth/providers.js: postExchange metadata now uses getOAuthClientMetadata() instead of inline string enums - open-sse/services/usage.js: getGeminiSubscriptionInfo body now uses CLIENT_METADATA (already imported from appConstants.js) instead of inline string enums
This commit is contained in:
1 parent
5e1c126136
commit
8daa953ef6
4 files changed
+9
-16
No files matched your search
@@ -23,6 +23,7 @@ import {
|
||||
CLINE_CONFIG,
|
||||
GITLAB_CONFIG,
|
||||
CODEBUDDY_CONFIG,
|
||||
getOAuthClientMetadata,
|
||||
} from "./constants/oauth";
|
||||
|
||||
const BASE64_BLOCK_SIZE = 4;
|
||||
@@ -306,7 +307,7 @@ const PROVIDERS = {
|
||||
return await response.json();
|
||||
},
|
||||
postExchange: async (tokens) => {
|
||||
// Matches CLIProxyAPI Go source: string enum, no mode field
|
||||
// Numeric enums matching Antigravity binary ClientMetadata
|
||||
const loadHeaders = {
|
||||
"Authorization": `Bearer ${tokens.access_token}`,
|
||||
"Content-Type": "application/json",
|
||||
@@ -315,7 +316,7 @@ const PROVIDERS = {
|
||||
"Client-Metadata": ANTIGRAVITY_CONFIG.loadCodeAssistClientMetadata,
|
||||
"x-request-source": "local",
|
||||
};
|
||||
const metadata = { ideType: "IDE_UNSPECIFIED", platform: "PLATFORM_UNSPECIFIED", pluginType: "GEMINI" };
|
||||
const metadata = getOAuthClientMetadata();
|
||||
|
||||
// Fetch user info
|
||||
const userInfoRes = await fetch(`${ANTIGRAVITY_CONFIG.userInfoUrl}?alt=json`, {
|
||||
|
||||
Reference in new issue
Block a user