gpt4 book ai didi

javascript - 即时更改代理服务器的凭据

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:53:53 25 4
gpt4 key购买 nike

我正在为 chrome 开发一个扩展。该扩展允许从列表中选择任何代理服务器,每个代理都需要授权。当用户想两次连接到同一代理服务器但使用不同的凭据时会出现问题,例如,如果用户第一次成功登录,chrome 会记住它,而当用户尝试使用其他凭据连接时,chrome将使用在第一次登录时输入的凭据。

var authCredentials = {
username: 'Jack',
password: 'PassForJack'
}

var auth = function () {
return {
authCredentials
};
};


chrome.webRequest.onAuthRequired.addListener(auth, {
urls: ["<all_urls>"]
}, ["blocking"]);

// set a new proxy server for the first login
chrome.proxy.settings.set({
value: {
mode: 'fixed_servers',
rules: {
singleProxy: {
host: 'some-proxy-server.com',
port: 8000
}
}
},
scope: 'regular'
});


// change credentails
authCredentials = {
username: 'Bob',
password: 'PassForBob'
};

// remove proxy configuration
chrome.proxy.settings.set({
value: {
mode: 'direct'
},
scope: 'regular'
});

// remove onAuthListener
chrome.webRequest.onAuthRequired.removeListener(auth)
chrome.webRequest.onAuthRequired.hasListener(auth) // returns false

chrome.webRequest.onAuthRequired.addListener(auth, {
urls: ["<all_urls>"]
}, ["blocking"]);

// lets re connect
chrome.proxy.settings.set({
value: {
mode: 'fixed_servers',
rules: {
singleProxy: {
host: 'some-proxy-server.com',
port: 8000
}
}
},
scope: 'regular'
});

// that doesn't help the user would be logged as "Jack" but has to be as "Bob"

最佳答案

这里有多种可能性,因为问题不是很清楚。我建议遍历 documentation首先是 chrome.webRequest。但我的问题是为什么不使用拦截器方法来检查服务器凭据对?有个好article关于在扩展的 background.js 脚本中添加拦截器,建议使用 beforeRequest Hook 。

关于javascript - 即时更改代理服务器的凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51785461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com