如何在不同的BrowserView对象中使用不同的user:pass身份验证代理?

时间:2019-12-30 00:02:09

标签: javascript electron

正如标题所示,我正在开发一个ElectronJS项目,其中有多个BrowserView对象,并且希望为每个窗口使用不同的代理。

我读到here,发现ses.setProxy()存在,这意味着我也许可以使用browserViewObj.webContents.session.setProxy()来使用特定的代理。但是,问题仍然存在:如何进行身份验证?

1 个答案:

答案 0 :(得分:1)

我认为答案是“设计使然”。您将PAC文件提供给setProxy()(或使用proxyRules,但这仅提供相同的选项)。 It seems表示他们明确不允许PAC文件中的用户名/密码来确保安全。 (尽管该逻辑并不真正适用于直接使用proxyRules,但确实可以。)

This answer建议设置ssh隧道。您可以为每个BrowserView对象预先创建一个隧道(一个端口),然后将localhost和所需的端口设置为代理。

上面第一个链接上选择的答案表明https://github.com/sjitech/proxy-login-automator看起来可能具有相同的想法。这似乎是一个命令行脚本,但是您应该能够提取出所需的位,并在Electron主进程中运行它。