From 3c50cfcfc5006b57603247b52bc3bcb8852421d4 Mon Sep 17 00:00:00 2001 From: Jeason <1710884619@qq.com> Date: Wed, 1 Apr 2026 14:57:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api_service/app/routers/accounts.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/backend/api_service/app/routers/accounts.py b/backend/api_service/app/routers/accounts.py index df0b9be..4aec281 100644 --- a/backend/api_service/app/routers/accounts.py +++ b/backend/api_service/app/routers/accounts.py @@ -218,7 +218,12 @@ async def _verify_weibo_cookie(cookie_str: str) -> dict: headers=WEIBO_HEADERS, cookies=cookies, ) - data = resp.json() + try: + data = resp.json() + except Exception: + # 非 JSON 响应(可能是 GBK 编码的登录页),视为 Cookie 失效 + return {"valid": False, "uid": None, "screen_name": None} + if data.get("ok") != 1: return {"valid": False, "uid": None, "screen_name": None} @@ -237,7 +242,7 @@ async def _verify_weibo_cookie(cookie_str: str) -> dict: uid = str(user.get("idstr", user.get("id", ""))) screen_name = user.get("screen_name", "") except Exception: - pass # profile info is optional, login check already passed + pass return {"valid": True, "uid": uid, "screen_name": screen_name} @@ -336,7 +341,10 @@ async def _get_super_topics(cookie_str: str, weibo_uid: str = "") -> List[dict]: headers=headers, cookies=cookies, ) - data = resp.json() + try: + data = resp.json() + except Exception: + break if data.get("ok") != 1: break @@ -413,7 +421,10 @@ async def _do_signin(cookie_str: str, topic_title: str, containerid: str) -> dic headers=headers, cookies=cookies, ) - data = resp.json() + try: + data = resp.json() + except Exception: + return {"status": "failed", "message": f"非JSON响应: {resp.text[:100]}"} code = str(data.get("code", "")) msg = data.get("msg", "")