我正在从我的服务器向另一台服务器发出发布请求,为此我正在使用库 https://github.com/request/request .
所以,我使用下一个代码:
router.post('/extern/*', function(req, res, next) {
var path = req.params['0'];
var input = req.body.text;
var encript = crypto.encrypt(input);
request.post(config.petitionServer + path).form({data: encript}).pipe(res)
});
在调用这篇文章之前 session 已经初始化,但是当它执行时, session 被重置。因此,在这种情况下,我丢失了 session 变量中的 csrf 代码。
错误出现在“pipe”函数中,因为如果我调用它,我就会丢失 session ,在其他情况下不会,但我需要使用它。
如何在不丢失实际 session 的情况下使用管道功能?
最佳答案
我相信express-session正在将其 session 保存到cookie中,而您正在做的是将孔响应从config.petitionServer + path
管道传输到客户端,以便它覆盖express-session已保存的cookie 。也许仅仅通过管道传递响应的主体会是一个更好的主意?
router.post('/extern/*', function(req, res, next) {
var path = req.params['0'];
var input = req.body.text;
var encript = crypto.encrypt(input);
request.post({url: config.petitionServer + path, formData: {data: encript}, function(err, httpResponse, body))
res.send(body);
});
关于node.js - NodeJS 请求重置 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391501/