我正在使用 Express 3.x 和 connect-mongo 以及请求模块
我的应用程序有一些中间件,可确保外部请求具有 access_token。检查 access_token 并在会话中存储一些数据。然后,我想对应用程序中的 url 进行内部调用,但内部调用会发出一个新会话(作为来自用户浏览器请求的单独请求)。我想要做的是以某种方式将 Express 签名的 cookie 复制到内部 request() 中,以便中间件根据原始外部会话 ID 执行操作。我尝试将 cookie jar 传递到请求对象中,但它似乎不太支持签名的 cookie。任何想法我怎么能做到这一点?
/* Middleware to check access tokens */
app.all("/*", requireAuth, function(req, res, next) {
next();
});
function requireAuth(req,res,next) {
if ( req.query.access_token && !req.session ) {
// Check the access token and popualte stuff in the session
req.session.somedata = 'test';
// Then call a url internall to do something
// My issue is that this INTERNAL request below gets a new session Id
// so it itself returns Not Authorised as its hits the same code
request({
url: 'someurlinside-this-node-app',
method: "GET"
}, function _callback(err, serviceres, body) {
next();
});
}else{
res.send('Not Authorised');
}
}