diff --git a/config.json b/config.json index fe5fd8a..f432fe7 100644 --- a/config.json +++ b/config.json @@ -40,6 +40,9 @@ "cpa_push_required": false, "cpa_prefer_sso_oauth": true, "cpa_require_referrer": true, + "cpa_prefer_browser_mint": false, + "cpa_allow_browser_fallback": true, + "cpa_browser_mint_timeout_sec": 90, "cpa_allow_device_fallback": false, "mint_proxy": "", "mint_timeout_sec": 300, diff --git a/cpa_export.py b/cpa_export.py index a7524dd..080ace5 100644 --- a/cpa_export.py +++ b/cpa_export.py @@ -72,11 +72,11 @@ def _mint_tokens( log: Callable[[str], None], proxy: str | None, ) -> dict[str, Any]: - """铸造策略(有 page 时优先浏览器,避免直连 auth.x.ai 卡超时): + """铸造策略(默认 HTTP 优先,浏览器作兜底,避免拖慢吞吐): - 1. page+sso 且 cpa_prefer_browser_mint:直接浏览器 PKCE - 2. 否则 HTTP SSO→OAuth(curl_cffi,短超时) - 3. HTTP 失败且有 page:浏览器 PKCE + 1. 仅当 cpa_prefer_browser_mint=true 且有 page:先浏览器 PKCE + 2. HTTP SSO→OAuth(curl_cffi,短超时)— 默认主路径 + 3. HTTP 失败且有 page + cpa_allow_browser_fallback:浏览器 PKCE 4. 可选设备码(通常无 referrer,默认关) """ from oidc_mint.oauth_code import ( @@ -90,13 +90,13 @@ def _mint_tokens( sso_token = normalize_sso_cookie(sso or "") prefer_sso = bool(cfg.get("cpa_prefer_sso_oauth", True)) allow_browser = bool(cfg.get("cpa_allow_browser_fallback", True)) - # 有注册浏览器时默认先浏览器:直连/跨境对 auth.x.ai 经常 curl(28)/ReadTimeout - prefer_browser = bool(cfg.get("cpa_prefer_browser_mint", True)) + # 默认 False:先 HTTP(快);浏览器只在 HTTP 失败时兜底 + prefer_browser = bool(cfg.get("cpa_prefer_browser_mint", False)) allow_device = bool(cfg.get("cpa_allow_device_fallback", False)) timeout = float(cfg.get("mint_timeout_sec", 300) or 300) require_ref = bool(cfg.get("cpa_require_referrer", True)) http_err: Exception | None = None - browser_timeout = min(timeout, float(cfg.get("cpa_browser_mint_timeout_sec", 120) or 120)) + browser_timeout = min(timeout, float(cfg.get("cpa_browser_mint_timeout_sec", 90) or 90)) def _browser_mint(reason: str) -> dict[str, Any]: log(f"[cpa] 浏览器 PKCE 铸造({reason})") diff --git a/grok_register_ttk.py b/grok_register_ttk.py index 9614eea..fd4a8fb 100644 --- a/grok_register_ttk.py +++ b/grok_register_ttk.py @@ -85,9 +85,9 @@ DEFAULT_CONFIG = { # OIDC:优先 SSO→Authorization Code + referrer=grok-build "cpa_prefer_sso_oauth": True, # True=用 sso cookie 走 PKCE(必须带 referrer) "cpa_require_referrer": True, # True=access_token 无 referrer=grok-build 则失败 - "cpa_prefer_browser_mint": True, # True=有注册浏览器时优先浏览器 PKCE(避开 Python 直连超时) + "cpa_prefer_browser_mint": False, # True=有 page 时先浏览器(慢);默认 False=先 HTTP,失败再浏览器 "cpa_allow_browser_fallback": True, # True=HTTP 铸造失败时用注册浏览器走 PKCE - "cpa_browser_mint_timeout_sec": 120, # 浏览器 PKCE 最长等待 + "cpa_browser_mint_timeout_sec": 90, # 浏览器 PKCE 最长等待(兜底路径) "cpa_allow_device_fallback": False, # True=SSO 失败时回退设备码(通常不可用) # OIDC 铸造代理/超时 "mint_proxy": "", # 铸造专用代理;空=复用 proxy