req.session护照属性不保存

req.session passport properties do not save

当用户通过 Facebook 登录时,我可以使用护照保存会话。但是,一旦我尝试将任何其他内容附加到 req.session 对象,我就遇到了麻烦。我正在尝试将保管箱模块附加到 req.session,以便用户可以在整个会话期间进行保管箱 api 调用。

首先,在 oAuth 过程之后,我像这样附加(工作的)保管箱模块:

exports.createDBoxClient = function(req, res, next) {
  req.session.dropbox = DBoxApp.client(req.dbox_access_token);
  next();
};

其次,用户稍后上传文件,如下所示:

exports.upload = function(req,res,next){
  req.session.dropbox.put('/'+req.files.file.originalname,req.fileStream,function(status, data){
    next();
  })
};

然而,此时 req.session.dropbox 是一个空对象。关于如何在用户通过我的网站登录到他们的保管箱帐户后保存他们的保管箱功能的任何提示?

谢谢!

为什么不只保存访问令牌并在需要时用它实例化一个新的 DBoxApp.client 对象?

例如

exports.saveDropboxToken = function (req, res, next) {
  req.session.dropboxAccessToken = req.dbox_access_token;
  next();
};

exports.upload = function (req,res,next){
    var client = DBoxApp.client(req.session.dropboxAccessToken);
    client.put('/' + req.files.file.originalname,
               req.fileStream,
               function (status, data) {
                   next();
               });
};