【问题标题】:How to access the node-orm2 Express middleware inside passport.deserializeUser如何访问passport.deserializeUser中的node-orm2 Express中间件
【发布时间】:2013-07-17 06:52:21
【问题描述】:

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

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);
});

【问题讨论】:

    标签: node.js authentication passport.js middleware node-orm2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多