diff --git a/src/api/admin.py b/src/api/admin.py index dba1d7c..35eb960 100644 --- a/src/api/admin.py +++ b/src/api/admin.py @@ -382,7 +382,10 @@ async def import_tokens(request: ImportTokensRequest, token: str = Depends(verif if not import_item.session_token: raise ValueError("ST导入模式需要提供 session_token") # Convert ST to AT - st_result = await token_manager.st_to_at(import_item.session_token) + st_result = await token_manager.st_to_at( + import_item.session_token, + proxy_url=import_item.proxy_url + ) access_token = st_result["access_token"] # Update email if API returned it if "email" in st_result and st_result["email"]: @@ -396,7 +399,8 @@ async def import_tokens(request: ImportTokensRequest, token: str = Depends(verif # Convert RT to AT rt_result = await token_manager.rt_to_at( import_item.refresh_token, - client_id=import_item.client_id + client_id=import_item.client_id, + proxy_url=import_item.proxy_url ) access_token = rt_result["access_token"] # Update RT if API returned new one diff --git a/src/services/token_manager.py b/src/services/token_manager.py index 39f281e..a6bfcd6 100644 --- a/src/services/token_manager.py +++ b/src/services/token_manager.py @@ -475,10 +475,10 @@ class TokenManager: print(f"📄 响应内容: {response.text[:500]}") raise Exception(f"Failed to activate Sora2: {response.status_code}") - async def st_to_at(self, session_token: str) -> dict: + async def st_to_at(self, session_token: str, proxy_url: Optional[str] = None) -> dict: """Convert Session Token to Access Token""" debug_logger.log_info(f"[ST_TO_AT] 开始转换 Session Token 为 Access Token...") - proxy_url = await self.proxy_manager.get_proxy_url() + proxy_url = await self.proxy_manager.get_proxy_url(proxy_url=proxy_url) async with AsyncSession() as session: headers = { @@ -555,19 +555,20 @@ class TokenManager: debug_logger.log_info(f"[ST_TO_AT] 🔴 异常: {str(e)}") raise - async def rt_to_at(self, refresh_token: str, client_id: Optional[str] = None) -> dict: + async def rt_to_at(self, refresh_token: str, client_id: Optional[str] = None, proxy_url: Optional[str] = None) -> dict: """Convert Refresh Token to Access Token Args: refresh_token: Refresh Token client_id: Client ID (optional, uses default if not provided) + proxy_url: Proxy URL (optional, uses global proxy if not provided) """ # Use provided client_id or default effective_client_id = client_id or "app_LlGpXReQgckcGGUo2JrYvtJK" debug_logger.log_info(f"[RT_TO_AT] 开始转换 Refresh Token 为 Access Token...") debug_logger.log_info(f"[RT_TO_AT] 使用 Client ID: {effective_client_id[:20]}...") - proxy_url = await self.proxy_manager.get_proxy_url() + proxy_url = await self.proxy_manager.get_proxy_url(proxy_url=proxy_url) async with AsyncSession() as session: headers = {