gpt4 book ai didi

node.js - NodeJs HTTP 代理基本身份验证

转载 作者:可可西里 更新时间:2023-11-01 17:05:48 25 4
gpt4 key购买 nike

我正在尝试实现一个简单的 HTTP 代理,它只会尝试在目标主机上执行基本身份验证。

到目前为止,我有以下内容:

var http = require('http');

const my_proxy = http.createServer(function(request, response) {
console.log(request.connection.remoteAddress + ": " + request.method + " " + request.url);

const options = {
port: 80
, host: request.headers['host']
, method: request.method
, path: request.url
, headers: request.headers
, auth : 'real_user:real_password'
}
};

var proxy_request = http.request(options);

proxy_request.on('response', function (proxy_response) {
proxy_response.on('data', function(chunk) {
response.write(chunk, 'binary');
});
proxy_response.on('end', function() {
response.end();
});
response.writeHead(proxy_response.statusCode, proxy_response.headers);
});

request.on('data', function(chunk) {
proxy_request.write(chunk, 'binary');
});

request.on('end', function() {
proxy_request.end();
});
});
my_proxy.listen(8080);

然而,"auth : 'real_user:real_password'"似乎没有做任何事情。也试过:

...
auth: {
user: real_user,
pass: real_pass
}
...

最佳答案

你必须生成授权 header

var username = 'Test';
var password = '123';
var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64');

// auth is: 'Basic VGVzdDoxMjM='

var header = {'Host': 'www.example.com', 'Authorization': auth};
var request = client.request('GET', '/', header);

关于node.js - NodeJs HTTP 代理基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226313/

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