From 35f5bd346498af62b00e8e34e92e9fc689c25956 Mon Sep 17 00:00:00 2001 From: ciat-777 Date: Tue, 17 Mar 2026 17:09:02 +0800 Subject: [PATCH] chore: align oauth defaults with cliproxyapi --- src/server/config.test.ts | 10 +++++----- src/server/config.ts | 12 ++++++++---- src/server/routes/api/oauth.test.ts | 8 -------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/server/config.test.ts b/src/server/config.test.ts index 9771782..60ef01b 100644 --- a/src/server/config.test.ts +++ b/src/server/config.test.ts @@ -38,14 +38,14 @@ describe('buildConfig', () => { expect(config.telegramApiBaseUrl).toBe('https://api.telegram.org'); }); - it('does not embed OAuth client credentials by default', () => { + it('ships CLI-aligned OAuth defaults', () => { const config = buildConfig({}); - expect(config.codexClientId).toBe(''); - expect(config.claudeClientId).toBe(''); + expect(config.codexClientId).toBe('app_EMoamEEZ73f0CkXaXp7hrann'); + expect(config.claudeClientId).toBe('9d1c250a-e61b-44d9-88ed-5944d1962f5e'); expect(config.claudeClientSecret).toBe(''); - expect(config.geminiCliClientId).toBe(''); - expect(config.geminiCliClientSecret).toBe(''); + expect(config.geminiCliClientId).toBe('681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com'); + expect(config.geminiCliClientSecret).toBe('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'); }); it('accepts JSON request bodies larger than Fastify default 1 MiB', async () => { diff --git a/src/server/config.ts b/src/server/config.ts index f497955..1d4caf9 100644 --- a/src/server/config.ts +++ b/src/server/config.ts @@ -2,6 +2,10 @@ import 'dotenv/config'; import type { FastifyServerOptions } from 'fastify'; const DEFAULT_REQUEST_BODY_LIMIT = 20 * 1024 * 1024; +const DEFAULT_CODEX_CLIENT_ID = 'app_EMoamEEZ73f0CkXaXp7hrann'; +const DEFAULT_CLAUDE_CLIENT_ID = '9d1c250a-e61b-44d9-88ed-5944d1962f5e'; +const DEFAULT_GEMINI_CLI_CLIENT_ID = '681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com'; +const DEFAULT_GEMINI_CLI_CLIENT_SECRET = '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'; function parseBoolean(value: string | undefined, fallback = false): boolean { if (value === undefined) return fallback; @@ -45,11 +49,11 @@ export function buildConfig(env: NodeJS.ProcessEnv) { return { authToken: env.AUTH_TOKEN || 'change-me-admin-token', proxyToken: env.PROXY_TOKEN || 'change-me-proxy-sk-token', - codexClientId: parseOptionalSecret(env.CODEX_CLIENT_ID), - claudeClientId: parseOptionalSecret(env.CLAUDE_CLIENT_ID), + codexClientId: parseOptionalSecret(env.CODEX_CLIENT_ID) || DEFAULT_CODEX_CLIENT_ID, + claudeClientId: parseOptionalSecret(env.CLAUDE_CLIENT_ID) || DEFAULT_CLAUDE_CLIENT_ID, claudeClientSecret: parseOptionalSecret(env.CLAUDE_CLIENT_SECRET), - geminiCliClientId: parseOptionalSecret(env.GEMINI_CLI_CLIENT_ID), - geminiCliClientSecret: parseOptionalSecret(env.GEMINI_CLI_CLIENT_SECRET), + geminiCliClientId: parseOptionalSecret(env.GEMINI_CLI_CLIENT_ID) || DEFAULT_GEMINI_CLI_CLIENT_ID, + geminiCliClientSecret: parseOptionalSecret(env.GEMINI_CLI_CLIENT_SECRET) || DEFAULT_GEMINI_CLI_CLIENT_SECRET, systemProxyUrl: env.SYSTEM_PROXY_URL || '', accountCredentialSecret: env.ACCOUNT_CREDENTIAL_SECRET || env.AUTH_TOKEN || 'change-me-admin-token', checkinCron: env.CHECKIN_CRON || '0 8 * * *', diff --git a/src/server/routes/api/oauth.test.ts b/src/server/routes/api/oauth.test.ts index 9d517e5..0828040 100644 --- a/src/server/routes/api/oauth.test.ts +++ b/src/server/routes/api/oauth.test.ts @@ -27,10 +27,6 @@ describe('oauth routes', { timeout: 15_000 }, () => { beforeAll(async () => { dataDir = mkdtempSync(join(tmpdir(), 'metapi-oauth-routes-')); process.env.DATA_DIR = dataDir; - process.env.CODEX_CLIENT_ID = 'test-codex-client-id'; - process.env.CLAUDE_CLIENT_ID = 'test-claude-client-id'; - process.env.GEMINI_CLI_CLIENT_ID = 'test-gemini-client-id'; - process.env.GEMINI_CLI_CLIENT_SECRET = 'test-gemini-client-secret'; await import('../../db/migrate.js'); const dbModule = await import('../../db/index.js'); @@ -56,10 +52,6 @@ describe('oauth routes', { timeout: 15_000 }, () => { afterAll(async () => { await app.close(); delete process.env.DATA_DIR; - delete process.env.CODEX_CLIENT_ID; - delete process.env.CLAUDE_CLIENT_ID; - delete process.env.GEMINI_CLI_CLIENT_ID; - delete process.env.GEMINI_CLI_CLIENT_SECRET; }); it('lists multi-provider oauth metadata', async () => {