我正在使用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();
}
但没有成功......: - (
有没有人对这个问题有任何想法?
提前致谢...
答案 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.session
和express.cookieParser
。