因此,在我的整个应用程序中,我使用/api
路由来掩盖我真正的api url,并且我在这样的表达中代理它:
// Proxy api calls
app.use('/api', function (req, res) {
let url = config.API_HOST + req.url // This gets my api url from config
req.pipe(request(url)).pipe(res) // This pipes it through
})
但是我现在需要检查用户何时发布到/api/authenticate
并获得成功的响应我需要在快递中设置带有令牌的httpOnly cookie。怎么能实现这一目标?我还需要访问该响应返回的数据来获取令牌。
答案 0 :(得分:1)
我不知道我是否完全低估了你(并且我没有评论的声誉),但我认为你可以使用request module。例如:
var request = require('request')
//declare this inside your route if you want to send some parameters you can use formData it accepts get or post requests
request.post(config.API_HOST + req.url, formData : { field : 'something' }, function(err, response, body) {
//here you have the response from the route with the token you generated
//and then you can pipe this to the proxy or send the token via res
res.send({ token : response.token }) //or use res.cookie('token', response.token)
}
有了这个,您可以创建一个请求,并在将数据发送到第一个响应之前将所有内容返回给您,不要忘记处理错误的参数!