javascript - 如何处理不正确的代理身份验证凭据

标签 javascript electron proxy-authentication

我有一个 Electron 应用程序,有时会在公司防火墙后面使用。

我已将登录事件监听器添加到应用程序,并通过对话框从用户请求用户名和密码。
如果用户第一次正确输入详细信息,则工作正常,但如果第一次尝试输入时出错,然后用户第二次输入正确的详细信息,则请求似乎停顿,然后超时。
如果我激活另一个HTTP请求,创建第三个身份验证请求并正确输入详细信息,则它可以工作。

这是当前流程中主要流程的代码:

const requestHistory = [];

let onAuthCallback = function (username, password) {
  const lastIndex = requestHistory.length - 1;
  if (lastIndex < 0) {
    return;
  }

  const {callback} = requestHistory[lastIndex];
  callback(username, password);
};

app.on('login', (event, webContents, request, authInfo, callback) => {
  event.preventDefault();
  mainWindow.webContents.send('proxy-auth:req', authInfo);
  requestHistory.push({event, webContents, request, authInfo, callback});
});

ipcMain.on('proxy-auth:userpass', (event, userpass) => {
  console.info('userpass:', userpass);
  const {username, password} = userpass;
  try {
    console.info('proxy-auth with "%s" "%s"', username, password);
    onAuthCallback(username, password);
  } catch (error) {
    console.error('ERROR in `proxy-auth:userpass`:', error);
  }
});

如果有人有任何指针,那就太好了。目前,我正在考虑忽略任何其他快速解决此问题的请求。

谢谢

最佳答案

答案是,Electron中目前存在一个错误

https://github.com/electron/electron/issues/16010

该错误报告提供了一些解决该问题的建议。

关于javascript - 如何处理不正确的代理身份验证凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57528000/

相关文章:

javascript - 如何从包含嵌套对象的数组中删除重复项

javascript - 将 JSON 对象的部分内容替换为 HTML 输入值

javascript - 在 JavaScript 中操作数组

javascript - Chrome 扩展使用 jQuery 获取本地 json

popup - ElectronJS-如何在后台弹出

javascript - Electron 找不到模块/资源/应用程序/index.js

java - HttpClient 4 的代理设置不起作用

java - java中的客户端Web服务——代理认证

java - Jersey 客户端是否支持 NTLM 代理

electron - 为什么electronic-osx-sign无法生成Gatekeeper认可的签名应用程序?