在代理到某个地址之前,我希望设置代理的头(Smth类似于一个拦截器)。到目前为止,我的代码如下所示。顺便说一句。这个图书馆的文档并没有使我变得更聪明。
app.use('/v1/*', proxy('velodrome.usefixie.com', {
userResHeaderDecorator(headers, userReq, userRes, proxyReq, proxyRes) {
// recieves an Object of headers, returns an Object of headers.
headers = {
Host: 'api.clashofclans.com',
'Proxy-Authorization': `Basic ${new Buffer('token').toString('base64')}`
};
console.log(headers);
return headers;
}(});
即使控制台打印出标题obj。正如预期的那样,代理授权不起作用:
{ Host: 'api.clashofclans.com',
'Proxy-Authorization': 'Basic token' }有人能帮我吗?
发布于 2018-06-27 17:24:20
如果您所需要做的就是添加一些中间件来更改某些头文件,那么您应该可以这样做:
app.use('/v1/*', (req, res, next) => {
req.headers['Proxy-Authorization'] = `Basic ${new Buffer('token').toString('base64')}`;
next();
});发布于 2019-07-01 18:36:56
express-http-proxy允许您通过proxyReqOptDecorator传递选项对象(与request库中使用的对象相同)。
app.use("/proxy", proxy("https://target.io/api", {
proxyReqOptDecorator: function (proxyReqOpts, srcReq) {
proxyReqOpts.headers = {"Authorization": "Bearer token"};
return proxyReqOpts;
}
}));或
app.use("/proxy", proxy("https://target.io/api", {
proxyReqOptDecorator: function (proxyReqOpts, srcReq) {
proxyReqOpts.auth = `${username}:${password}`;
return proxyReqOpts;
}
}));proxyReqOptDecorator的文档可以找到这里
https://stackoverflow.com/questions/51068167
复制相似问题