如何在Chrome扩展程序中删除代理授权缓存?

3
我正在为chrome构建一个“代理客户端”扩展程序,有以下场景:
  • 用户可以登录扩展程序并从API获取令牌。令牌有效期为2小时。
  • 登录后,用户可以从列表中选择代理服务器,并使用chrome.proxy api设置该代理。
  • 我在代理服务器上使用Squid。当用户连接到代理服务器并降落在onAuthRequired时,我将电子邮件和令牌作为authCredentials返回。
Chrome将缓存中的凭据用于直到令牌不再有效且代理服务器响应“407,代理身份验证要求”。现在我面临的问题是,当我使用同一浏览器上的另一个用户名登录并连接到同一代理服务器时,它仍然向服务器发送旧用户的凭据,因为它们仍然有效。我的问题是如何删除Chrome的代理身份验证缓存,以便它再次降落在onAuthRequired并返回新用户凭据。

我尝试修改代理服务器的响应为“407,代理身份验证要求”,当用户在代理服务器上进行第一次请求时强制执行onAuthRequired,但它没有起作用。 Chrome仍然使用缓存,并仍将旧用户的凭据返回给代理服务器。


2
你解决过这个问题吗?我在Chrome中遇到了类似的行为问题(刚刚在这里发布了一个问题https://dev59.com/YrDla4cB1Zd3GeqP2Aya)。看起来Chrome总是想使用相同的身份验证详细信息,而`webRequest`事件不允许您更改或删除`Proxy-Authorization`标头。同样,在`onAuthRequired`取消请求时,某些东西被记住了,防止再次从该服务器触发`onAuthRequired`。 - tripRev
请查看这篇文章,它有一个答案。 - Рыжая Белка
1个回答

0
你尝试过在webRequest API中挂载另一个事件处理程序以在Chrome进行身份验证之前操作HTTP标头吗?
例如,在onBeforeSendHeaders或onHeadersReceived上。

2
不幸的是,当使用'onBeforeSendHeaders'或'onHeadersReceived'时,Chrome不允许修改“Proxy-”标头。 - tripRev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接