req.session护照属性不保存

时间:2015-05-07 22:26:07

标签: node.js dropbox passport.js

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

首先,在oAuth过程之后,我附上(工作)dropbox模块,如下所示:

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是一个空对象。有关如何在用户通过我的网站登录其保管箱帐户后保存用户的保管箱功能的提示?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

E.g。

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();
               });
};