如何在谷歌Chrome浏览器中通过控制台实现Cookie替换与账号登录迁移
失败核心原因
你的操作逻辑存在3个关键疏漏:
- 仅读取
key=value属性,缺失Cookie核心配置项:document.cookie.split(';')只能拿到Cookie的键值对,无法获取Domain、Path、Secure、HttpOnly、SameSite等关键属性。其中谷歌账号的核心登录Cookie大多带有HttpOnly标记,本身就不允许通过document.cookie读取,你一开始拿到的Cookie就是不完整的,自然无法同步登录态。 - 作用域不匹配:谷歌登录态Cookie是挂载在
.google.com根域名下的,你仅在google.com单页面设置Cookie,accounts.google.com、mail.google.com等子服务无法读取到对应的鉴权Cookie。 - 无痕模式安全限制:Chrome无痕模式对Cookie写入有额外的安全校验,部分SameSite=Strict的Cookie未补全属性时会被静默拦截,不会实际生效。
正确实现步骤
注意:该方案仅用于本地测试,严禁用于非法获取他人账号权限
- 第一步:在已登录谷歌账号的普通Chrome窗口,访问
https://accounts.google.com,按F12打开开发者工具,切换到Application标签页,在左侧Storage栏选择Cookies下的https://accounts.google.com,记录所有Cookie的完整属性。 - 第二步:打开无痕窗口,同样访问
https://accounts.google.com,打开控制台,按以下格式逐行写入Cookie,补全所有属性:
示例写法:document.cookie = "SID=你获取到的SID值; Domain=.google.com; Path=/; Secure; HttpOnly; SameSite=Lax"
提示:带HttpOnly属性的Cookie写入后,用document.cookie查看不到属于正常情况,不会影响生效 - 第三步:所有Cookie写入完成后,不要刷新当前页面,直接在地址栏输入
https://myaccount.google.com访问,即可看到登录态已同步完成。
批量导出导入脚本
如果需要处理的Cookie数量较多,可以在已登录窗口的控制台执行以下代码直接生成导入脚本,复制到无痕窗口控制台执行即可完成批量写入:
// 已登录谷歌账号的窗口控制台执行,生成导入脚本 const cookies = await chrome.cookies.getAll({domain: ".google.com"}); let importScript = ''; cookies.forEach(cookie => { const attrList = []; cookie.domain && attrList.push(`Domain=${cookie.domain}`); cookie.path && attrList.push(`Path=${cookie.path}`); cookie.secure && attrList.push('Secure'); cookie.httpOnly && attrList.push('HttpOnly'); cookie.sameSite && attrList.push(`SameSite=${cookie.sameSite.charAt(0).toUpperCase() + cookie.sameSite.slice(1)}`); importScript += `document.cookie = "${cookie.name}=${cookie.value}; ${attrList.join('; ')}";\n`; }); console.log(importScript);
提示:执行上述代码前需要先在Chrome开发者工具设置中开启「Allow access to file URLs」权限,否则
chrome.cookies接口会因权限不足无法调用。
内容的提问来源于stack exchange,提问作者Akila Uyanwatta
相关产品推荐
相关产品推荐

