我第一次在项目中使用express作为我的前端和后端之间的一种反向代理。后端身份验证基于cookie。
首先,我使用http-proxy-middleware发出请求。这样可以很好地工作,并且cookie可以顺利通过。
问题是我想分离前端和后端,因为api现在还不太可用(例如,需要3个请求才能获取一个视图的数据)。因此,我希望让我的快递服务器在后台处理繁重的工作,而不是直接发出请求。
当前,我正在使用axios来处理请求,并将cookie与请求一起传递,并将新的cookie与响应一起传递回去。这可以正常工作,但感觉很容易出错。例如,我必须以非常奇怪的方式拆分返回的setcookie字符串。
app.get('/api/myrequest', (req, res) => {
axios.get('backendserver/url', {
headers: {
Cookie: req.cookies['auth'],
},
responseType: 'json',
})
.then((response) => {
let tempCookie = response.headers['set-cookie'][0];
tempCookie = tempCookie.split(';')[0];
tempCookie = tempCookie.split('=');
res.cookie(tempCookie[0], tempCookie[1]);
res.send(response.data);
})
});
我想有一个更好的方法来解决这个问题。我当时在看诸如PassportJS这类的东西,但是不确定auth是否由express本身处理,因此不确定是否适合这种特殊用例。
也许有人可以指出我正确的方向?