You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi中使用TChromium实现Instagram登录遇到Cookie报错如何解决

问题排查与解决方案

报错内容:

无法加载页面。如果你在浏览器中禁用了Cookie,或者处于隐私浏览模式,请尝试启用Cookie或关闭隐私模式后重试操作。

该错误由Instagram登录校验逻辑触发,主要是请求缺失必要校验参数、CEF配置错误导致,按以下步骤排查修复:

1. 修正CEF基础配置,确保Cookie功能正常

  • 初始化CEF时禁止开启隐身模式,不要禁用Cookie:
    如果你使用CEF4Delphi框架,初始化阶段确认以下配置:
    GlobalCEFApp.IncognitoMode := False; // 关闭隐私模式
    GlobalCEFApp.PersistSessionCookies := True; // 开启会话Cookie持久化
    GlobalCEFApp.DisableCookies := False; // 不要禁用Cookie
    // 启动参数不要添加--incognito、--disable-cookies配置
    

2. 调整登录流程,先获取前置校验Cookie

Instagram要求必须先访问登录主页获取csrftoken、mid等必要校验Cookie,直接发起POST登录请求会被拦截,调整流程:

  • 第一步先让Chromium加载登录主页:Chromium1.LoadURL('https://www.instagram.com/accounts/login/');
  • 监听OnLoadEnd事件,确认登录页加载完成后,再构造登录POST请求,此时CEF会自动携带已获取的Cookie,无需手动注入。

3. 补全请求必填头字段

登录AJAX接口要求必须携带X-CSRFToken请求头,值和Cookie中的csrftoken取值一致,你现有代码缺失该字段,需追加:

// 先从CEF的Cookie管理器中读取csrftoken值,假设已存储到变量CsrfTokenStr中
Header.Append('X-CSRFToken', CsrfTokenStr);
// 可额外补全X-Requested-With头避免被拦截
Header.Append('X-Requested-With', 'XMLHttpRequest');

4. 修正POST参数的转义错误

你现有代码中POST参数使用了HTML转义的&,实际传输时需使用原始&,修正代码:

// 原错误写法 Data.AddElement(CreateField('&enc_password=...'));
Data.AddElement(CreateField('&enc_password=#PWD_INSTAGRAM_BROWSER:10:1635078414:AdF...g=='));

完成以上修改后重新测试即可正常发起登录请求。


内容的提问来源于stack exchange,提问作者Surya Bersinar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:54:01