Cookie 与账号导入指南

学习如何将现有 Cookie、账号凭证和会话数据导入 NestBrowser 配置文件,快速启动已有账号管理工作。

导入现有 Cookie 和账号数据是 NestBrowser 最实用的功能之一。无论是迁移旧设备上的账号、从其他浏览器迁移,还是恢复已养成的账号环境,Cookie 导入功能都能让你跳过漫长的手动登录过程,直接进入工作状态。

对于多账号运营者来说,Cookie 代表着账号状态:登录凭证、会话令牌、平台个性化设置。

如果你正在:

  • 迁移已有账号:从旧设备或其他浏览器迁移到 NestBrowser
  • 团队移交账号:将账号控制权从一名运营人员转交给另一人,同时保留登录状态
  • 恢复备份:从保存的备份还原账号状态
  • 最小化检测风险:已养成的账号(有浏览历史和 Cookie)比全新账号检测风险更低

支持的导入格式

NestBrowser 支持以下 Cookie 格式导入:

  • JSON 格式(Chrome/Chromium 扩展导出格式)
  • Netscape 格式(文本文件,被 curl 和各工具广泛支持)
  • Base64 编码格式(用于批量操作的 API 格式)

使用 Chrome 扩展导出

安装”Cookie Editor”类扩展(如 EditThisCookie),在登录了目标账号后:

  1. 导航到目标网站(如 amazon.com)
  2. 点击扩展图标
  3. 点击”导出”→ 选择 JSON 格式
  4. 保存文件(如 amazon-account-a.json

导出的 JSON Cookie 格式示例:

[
  {
    "domain": ".amazon.com",
    "expirationDate": 1734567890,
    "httpOnly": true,
    "name": "session-id",
    "path": "/",
    "sameSite": "unspecified",
    "secure": true,
    "value": "xxx-xxxxxxx-xxxxxxx"
  }
]

第二步:在 NestBrowser 中导入

  1. 在配置文件列表中找到目标配置文件
  2. 点击配置文件右侧的更多操作图标
  3. 选择导入 Cookie
  4. 上传导出的 JSON 文件
  5. 确认导入

第三步:验证登录状态

启动配置文件,导航到对应网站,验证是否已处于登录状态。

方式二:通过 API 批量导入

对于需要批量处理的场景,可以通过 NestBrowser 本地 API 程序化导入 Cookie。

const axios = require('axios');

async function importCookies(profileId, cookies) {
  const response = await axios.post(
    'http://localhost:19222/api/v1/browser/cookies/import',
    {
      id: profileId,
      cookies: cookies,  // 数组格式的 Cookie 对象
    }
  );
  return response.data;
}

// 使用示例
const cookieData = require('./amazon-account-a.json');
await importCookies('profile-uuid', cookieData);

批量处理多个账号

const fs = require('fs');
const path = require('path');
const axios = require('axios');

async function batchImportCookies(mappingFile) {
  // mapping.json 格式: [{ "profileId": "xxx", "cookieFile": "account-a.json" }]
  const mapping = JSON.parse(fs.readFileSync(mappingFile, 'utf8'));
  
  for (const item of mapping) {
    const cookies = JSON.parse(
      fs.readFileSync(item.cookieFile, 'utf8')
    );
    
    await importCookies(item.profileId, cookies);
    console.log(`已导入配置文件 ${item.profileId} 的 Cookie`);
    
    // 避免请求过快
    await new Promise(r => setTimeout(r, 500));
  }
}

如果你在使用自动化框架,可以通过代码直接注入 Cookie:

Puppeteer 示例

const puppeteer = require('puppeteer-core');
const axios = require('axios');

async function loginWithCookies(profileId, cookieData) {
  // 启动配置文件
  const { data } = await axios.post(
    `http://localhost:19222/api/v1/browser/start?id=${profileId}`
  );
  
  const browser = await puppeteer.connect({
    browserWSEndpoint: data.ws.puppeteer,
    defaultViewport: null,
  });
  
  const page = await browser.newPage();
  
  // 先导航到目标域名
  await page.goto('https://www.amazon.com');
  
  // 注入 Cookie
  await page.setCookie(...cookieData);
  
  // 刷新页面,Cookie 现在已生效
  await page.reload();
  
  // 验证登录状态
  const isLoggedIn = await page.evaluate(() => {
    return document.querySelector('#nav-link-accountList')
      ?.textContent.includes('Hello') ?? false;
  });
  
  console.log(`账号登录状态: ${isLoggedIn ? '已登录' : '未登录'}`);
  
  return browser;
}

亚马逊

亚马逊使用多个关键 Cookie 维持登录状态:

  • session-id:主要会话标识符
  • at-mainx-main:身份验证令牌
  • ubid-main:用户 ID Cookie

导入这些 Cookie 后,应验证卖家后台(Seller Central)是否能正常访问。

Facebook / Meta

Facebook 的 Cookie 包括:

  • c_user:用户 ID
  • xs:会话令牌
  • datr:设备 Cookie(对账号识别很重要)

⚠️ 注意:Facebook 的 datr Cookie 与设备指纹关联紧密。如果你将此 Cookie 从一个指纹配置文件迁移到另一个,可能触发安全验证。建议在相同配置文件环境下操作。

TikTok

TikTok 的关键 Cookie:

  • sessionid:主要会话 Cookie
  • tt_csrf_token:CSRF 保护令牌
  • ttwid:设备标识符

通用注意事项

  • Cookie 有效期:大多数平台的 Cookie 会在 30–90 天后过期,过期后需重新登录并导出
  • 双重验证:导入 Cookie 不能绕过双重验证,需确保账号 2FA 已正常配置
  • 会话令牌安全:Cookie 文件中包含敏感凭证,请妥善保管,不要将其提交到代码仓库或不安全的存储中

定期备份你的账号 Cookie 是一个好习惯:

async function exportCookies(profileId) {
  // 通过 Puppeteer 导出
  const page = await getPageForProfile(profileId);
  await page.goto('https://www.amazon.com');
  
  const cookies = await page.cookies();
  
  const fs = require('fs');
  const timestamp = new Date().toISOString().split('T')[0];
  fs.writeFileSync(
    `backup-${profileId}-${timestamp}.json`,
    JSON.stringify(cookies, null, 2)
  );
  
  console.log(`已保存 ${cookies.length} 个 Cookie`);
}

相关文档