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

时间:2019-08-16 16:18:41

标签: javascript electron proxy-authentication

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

我已向应用程序添加了登录事件监听器,并通过对话框从用户请求用户名和密码。
如果用户第一次正确输入详细信息,则工作正常,但是如果第一次尝试输入时出现错误,然后用户第二次输入正确的详细信息,则请求似乎停顿,然后超时。 如果我激活另一个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);
  }
});

如果有人有任何很棒的指针。目前,我正在考虑忽略任何第二个请求以快速解决这个问题。

谢谢

1 个答案:

答案 0 :(得分:0)

因此,答案是Electron当前存在错误

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

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