diff --git a/frontend/app.py b/frontend/app.py index 4f6dac3..334f540 100644 --- a/frontend/app.py +++ b/frontend/app.py @@ -512,17 +512,18 @@ def _execute_sso_login(sso_url): except Exception as e: logger.debug(f"跨域 URL 访问失败: {e}") - # Step 3: 只提取 weibo.com 域名的 Cookie(签到 API 只需要这些) - weibo_com_cookies = {} + # Step 3: 提取所有相关域名的 Cookie(weibo.com + sina.com.cn) + # 微博 SSO 需要两个域的 Cookie 配合才能保持长期有效 + relevant_cookies = {} for cookie in sso_session.cookies: - if cookie.domain and 'weibo.com' in cookie.domain: - weibo_com_cookies[cookie.name] = cookie.value + if cookie.domain and ('weibo.com' in cookie.domain or 'sina.com.cn' in cookie.domain): + relevant_cookies[cookie.name] = cookie.value - cookie_str = '; '.join(f'{k}={v}' for k, v in weibo_com_cookies.items()) - logger.info(f"weibo.com Cookie ({len(weibo_com_cookies)} 个): {list(weibo_com_cookies.keys())}") + cookie_str = '; '.join(f'{k}={v}' for k, v in relevant_cookies.items()) + logger.info(f"收集到 Cookie ({len(relevant_cookies)} 个): {list(relevant_cookies.keys())}") - if not cookie_str or 'SUB' not in weibo_com_cookies: - logger.error(f"Cookie 不完整,缺少 SUB。获取到: {list(weibo_com_cookies.keys())}") + if not cookie_str or 'SUB' not in relevant_cookies: + logger.error(f"Cookie 不完整,缺少 SUB。获取到: {list(relevant_cookies.keys())}") return None, None, None if not uid: