0

我正在使用 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();
}

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

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

提前致谢...

4

1 回答 1

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.sessionand 。express.cookieParser

于 2013-03-01T12:15:26.227 回答