如何访问passport.deserializeUser中的node-orm2 Express中间件

我使用Passport进行身份validation,并与node-orm2一起使用。 护照要求您注册函数以序列化和反序列化会话中的用户。 我的用户存储在我通过node-orm2的Express中间件访问的数据库中。 orm2中间件将其模型标记在req对象上以便于访问。 不幸的是,Passport不提供对deserializeUser中的req对象的访问。 我已经遇到了这个解决scheme ,但我希望有更好的东西:

 var User; passport.use({ passReqToCallback: true }, new LocalStrategy(function (request, username, password, done) { if (!User) { User = request.models.User; } User .find({ username: username }) .limit(1) .run(function (err, users) { var user = users[0]; if (err) { done(err); } else if (!hasher.verify(password, user.password)) { done(null, false); } else { done(null, user); } }); })); passport.deserializeUser(function (id, done) { User.get(id, done); }); 

req将在即将发布的0.2.0版本中传递给护照的序列化和反序列化callback: https : //github.com/jaredhanson/passport/pull/160