Node.js / Passport / Connect-Filter:重构期间的问题

时间:2013-03-01 10:51:33

标签: node.js authentication connect passport.js middleware

我正在使用node.js开发一个Web应用程序,我使用护照(http://passportjs.org/)进行身份验证。 我把所有的护照代码都放到了app.js文件中,效果还不错...... 在一些重构步骤中,我决定将所有护照代码放入一个名为authentication.js的自己的文件/模块中,这是我的问题:

在app.js中有以下“中间件”代码:

app.configure(function(){
   ...
   app.use(passport.initialize());
   app.use(passport.session());
}

我想用这样的东西代替:

var auth = require('./authentication.js');
app.configure(function(){
   ...
   app.use(auth.initialize(app));
}

但实际上我不知道auth.initialize应该是怎样的。

我尝试过这样的事情:

function initialize(app){
   return function(res,req,next){
      app.use(passport.initialize(res,req, next));
      app.use(passport.session(res,req, next));
      next();
}

但没有成功......: - (

有没有人对这个问题有任何想法?

提前致谢...

1 个答案:

答案 0 :(得分:0)

这个怎么样?

// app.js
var auth = require('./authentication.js');
app.configure(function(){
   ...
   auth.initialize(app);
});

// authentication.js
module.exports.initialize = function(app) {
  app.use(passport.initialize());
  app.use(passport.session());
};

确保在Passport之前配置Passport所依赖的其他中间件,如express.sessionexpress.cookieParser