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

如何用JavaScript携带Base64编码登录数据打开URL并处理登录弹窗

密码保护站点登录弹窗处理方案

以下为兼容主流浏览器、不使用URL携带凭证格式的实现脚本,适配你现有的bot.ExecuteScript调用方式:

适用Basic Auth认证站点示例

如果你已经完成了「用户名:密码」的Base64编码,可直接使用如下脚本,预请求携带Authorization头建立有效会话后再打开页面,不会触发登录弹窗:

// 替换为你生成的编码后凭证,格式固定为 Basic + 空格 + Base64(用户名:密码)
const authHeader = "Basic WG9yOmpGOGpzTm8zSDk=";
fetch("https://anysite.com/", {
  headers: {
    "Authorization": authHeader
  },
  credentials: "include"
}).then(() => {
  // 会话建立完成后打开目标页
  window.open("https://anysite.com/");
});

对应你使用bot调用的写法:
bot.ExecuteScript "const authHeader='Basic 替换为你的编码后串';fetch('https://anysite.com/',{headers:{'Authorization':authHeader},credentials:'include'}).then(()=>window.open('https://anysite.com/'))"

适用表单登录站点示例

如果站点是普通表单登录而非Basic Auth,可直接提交登录请求建立会话:

fetch("https://anysite.com/login-api", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  // 替换为实际的登录参数名和值
  body: "user=你的账号&pwd=你的密码",
  credentials: "include"
}).then(() => {
  window.open("https://anysite.com/");
});

注意事项

  • 两种方案都不会在URL中明文暴露凭证,规避了浏览器禁用URL携带Basic Auth的限制,兼容Chrome、Edge、Firefox全版本
  • 若站点有CSRF校验要求,可在fetch之前先请求登录页获取CSRF Token,携带在请求头或者请求体中即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:54:02