【发布时间】:2019-09-10 22:06:08
【问题描述】:
我曾尝试查看过去对此类问题的响应,例如以下内容,但它们都会引发各种错误:
- http-proxy-middleware, how to copy all/cookie headers
- https://github.com/chimurai/http-proxy-middleware/issues/78
- http-proxy-middleware, how to copy all/cookie headers
我的代理设置返回正确的 Response Headers 并设置 cookie:set-cookie: JSESSIONID=yElsHUaPE8Ip_AAD_oIfTQ; Path=/; Secure; HttpOnly;。这些不是会话 cookie。
但是,我的登录正式失败,因为 JSESSIONID 没有被存储为 cookie。
这是我的代理设置:
const proxyTable = {
"/url": "http://localhost:4040/url",
"proxy.url.com/": "http://localhost:4040/",
};
const signin_proxy_options = {
target: host,
autoRewrite: true,
secure: true,
reqBodyEncoding: null,
changeOrigin: true,
logLevel: "debug",
router: proxyTable,
protocolRewrite: "http",
cookieDomainRewrite: { "*": "" },
onProxyRes: function(proxyRes, req, res) {
if (proxyRes.headers["set-cookie"] !== undefined) {
console.log("** SET-COOKIE: ", proxyRes.headers["set-cookie"]);
const cookieJar = proxyRes.headers["set-cookie"];
// cookieJar = 'JSESSIONID=yElsHUaPE8Ip_AAD_oIfTQ; Path=/; Secure; HttpOnly;'
var temp = cookieJar.split(";")[0].split("=");
// temp = [ 'JSESSIONID', 'yElsHUaPE8Ip_AAD_oIfTQ' ]
res.cookie(temp[0], temp[1]);
}
},
};
// Proxy configuration
const signin_proxy = proxy(signin_filter, signin_proxy_options);
app.use("/signin", signin_proxy);
成功时,服务器返回一个302 进行重定向。这会有影响吗??这就是为什么我有 proxyTable...
另外,由于看起来响应正常,我已经删除了 onProxyRes 字段,希望它会自动设置它,但也没有运气。
感谢任何想法/解决方案。
【问题讨论】:
标签: node.js express cookies proxy http-proxy-middleware