在我代理到一个地址之前,我想设置代理的 header (Smth 就像一个拦截器)。我使用 express-http-library 并使用 Node.JS 进行表达。到目前为止,我的代码如下所示。顺便提一句。这个库的文档并没有让我变得更聪明。
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' }
谁能帮帮我?
最佳答案
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
的文档here
关于node.js - Node - express-http-proxy - 在代理之前设置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068167/