我正在使用Express和Passport一起使用Node.js API应用程序,我可以通过将{session:false}传递给passport.authenticate来禁用会话,但是我可以在一个地方执行此操作,因此我不会重复自己600次? var app
          var app = express();
app.configure(function() {
    app.use(express.bodyParser());
    app.use(passport.initialize());
});
app.get('/users', passport.authenticate('hash', {session:false}), controllers.users.getAll);
app.get('/users/me', passport.authenticate('hash', {session:false}), controllers.users.getCurrentUser);
// and so on... 
 如果我能这样做会很棒:
app.donotuse(sessions).thanks();只需将结果保存在变量中并重复使用:
var PassportAuthenticateMiddleware = passport.authenticate('hash', {session:false});
...
app.get('/users',    PassportAuthenticateMiddleware, controllers.users.getAll);
app.get('/users/me', PassportAuthenticateMiddleware, controllers.users.getCurrentUser); 
 (或者像@hexacyanide建议全球使用中间件,如果这是您设置中的一个选项)
或者,您可以使用类似于此的内容:
app.all('/users*',   passport.authenticate('hash', {session:false}));
app.get('/users',    controllers.users.getAll);
app.get('/users/me', controllers.users.getCurrentUser); 
 这将过滤所有请求(而不是.all,您也可以使用.get),其URL以/ users开头,通过身份验证中间件运行.
