node.js - Nodejs复制内部应用程序请求的cookie

标签 node.js session express

我正在使用 Express 3.x 和 connect-mongo 以及请求模块

我的应用程序有一些中间件,可确保外部请求具有 access_token。 检查 access_token 并将一些数据存储在 session 中。 然后,我想对应用程序内的 url 进行内部调用,但内部调用会发出一个新 session (因为它是与用户浏览器请求不同的请求)。 我想要做的是以某种方式将 Express 签名的 cookie 复制到内部 request() 中,以便中间件根据原始外部 session 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');
 }

}

最佳答案

Cookie 只是另一个 header ,因此如果您想传递它,您应该能够执行以下操作:

var cookies = req.header('Set-Cookie');

request({
       url: 'someurlinside-this-node-app',
       method: "GET",
       headers: { 'Set-Cookie' : cookies}
   }

关于node.js - Nodejs复制内部应用程序请求的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058887/

相关文章:

PHP session : SESSION Variables Automatically Reset after Unserialize()

javascript - 了解 ReactJS 和 NodeJS 应用程序如何工作

node.js - 如何在亚马逊 s3 上删除文件图像

c# - WCF 服务中跨 session 持续存在的静态变量

mysql - 使用 Sequelize 排除空关联数组

javascript - 如何解析 Nodejs/javascript 中的 Azure Blob URI?

Node.js 将流复制到文件中而不消耗

Linux - 计算 session 持续时间并将其添加到您的提示中

javascript - 如何在静态 Javascript 中嵌入 EJS 代码?

node.js - 序列化多对多文档