账号管理列表中的百家号平台账号点击"后台"按钮后,无法跳转到后台并保持登录状态,而是跳转到登录页面。
第一步:先跳转到登录页面 (https://baijiahao.baidu.com/builder/theme/bjh/login)
https://www.baidu.com) 来设置 Cookie第二步:登录页面加载完成后,自动跳转到后台页面
https://baijiahao.baidu.com/builder/rc/home)1. 修改初始 URL 逻辑 (client/src/components/BrowserTab.vue)
const initialUrl = computed(() => {
// 对于百家号管理模式且有预设 Cookie,先跳转到登录页面设置 Cookie
if (platform.value === 'baijiahao' &&
props.tab.browserData?.isAdminMode &&
props.tab.browserData?.cookieData) {
return PLATFORMS[platform.value]?.loginUrl; // 先跳转到登录页面
}
// 其他情况使用指定的 URL
return props.tab.browserData?.url || PLATFORMS[platform.value]?.loginUrl;
});
2. 在登录页面加载完成后自动跳转
function handleDomReady() {
// 对于百家号管理模式,在登录页面加载完成后跳转到后台
if (isAdminMode.value && platform.value === 'baijiahao' && props.tab.browserData?.url) {
const currentUrl = webviewRef.value?.getURL() || '';
const targetUrl = props.tab.browserData.url;
// 如果当前在登录页面,且目标是后台页面,则跳转
if (currentUrl.includes('/builder/theme/bjh/login') && targetUrl.includes('/builder/rc/')) {
setTimeout(() => {
webviewRef.value?.loadURL(targetUrl);
}, 1000); // 等待 1 秒确保 Cookie 完全生效
return;
}
}
// ... 其他逻辑
}
3. 使用正确的 Cookie URL
// 对于百家号,使用百度主站 URL 来设置 Cookie
const cookieUrl = platform.value === 'baijiahao'
? 'https://www.baidu.com'
: targetUrl;
baijiahaohttps://baijiahao.baidu.com/builder/rc/home(保存但不立即使用)true/builder/theme/bjh/login)https://www.baidu.com 设置所有 CookiehandleDomReady/builder/rc/home)确保所有修改生效
前端日志(浏览器控制台):
[账号管理] 获取到 Cookie 数据,准备打开后台
[BrowserTab] 百家号管理模式,先跳转到登录页面设置 Cookie
[BrowserTab] 检测到预设 Cookie,先设置再加载页面
[BrowserTab] 设置 Cookie, cookieUrl=https://www.baidu.com
[BrowserTab] 百家号平台,等待 Cookie 生效...
[BrowserTab] 准备设置 X 个 Cookies
[BrowserTab] webview 准备就绪,加载页面: https://baijiahao.baidu.com/builder/theme/bjh/login
[BrowserTab] 百家号登录页面加载完成,Cookie 已设置,跳转到后台: https://baijiahao.baidu.com/builder/rc/home
Electron 主进程日志(终端):
[Main] 设置 webview cookies, count=X
[Main] 成功设置关键 Cookie: BDUSS, domain: .baidu.com
[Main] 成功设置关键 Cookie: STOKEN, domain: .baidu.com
[Main] 验证:当前 session 中有 X 个百度 Cookie
应该看到以下过程:
检查日志中的跳转过程
检查 Cookie 设置
检查 Cookie 是否过期
检查页面 URL
/builder/rc/home 或类似的后台页面检查 webview 的 Cookie
https://baijiahao.baidu.com.baidu.com 域名的 CookieBDUSS 和 STOKEN手动测试跳转
检查网络请求
https://www.baidu.com 作为 Cookie URL?.baidu.comwww.baidu.com 是 .baidu.com 的有效子域名答:这是正常的。我们需要先加载登录页面来设置 Cookie,然后再跳转到后台。整个过程约 1-2 秒。
答:理论上可以,但实践中发现直接跳转经常失败。通过登录页面中转可以确保 Cookie 完全生效。
答:需要重新登录账号。系统会自动过滤掉已过期的 Cookie,但如果所有 Cookie 都过期了,就无法登录。
答:目前只有百家号需要。其他平台的 Cookie 机制相对简单,可以直接跳转。
优化跳转体验
自动检测 Cookie 有效性
Cookie 刷新机制
更好的错误处理