在Node上设置OAuth2 - 在MongoDB中处理用户的最简单方法?

时间:2014-12-11 14:12:44

标签: javascript node.js mongodb express oauth-2.0

我已经设置了在NodeJS上运行的OAuth2身份验证服务器。我基于OAuth2orize for Passport中的示例。

现在我需要使用MongoDB中的用户切换硬编码用户。

我已经尝试了不同的解决方案,但实际上并没有让任何工作令人满意,所以我希望有人能够更容易地实现它。我宁愿不使用mongoose,只是使用MongoDB驱动程序。

为用户设置的当前设置如下:

var users = [
    { id: '1', username: 'bob', password: 'secret', name: 'Bob Smith' },
    { id: '2', username: 'joe', password: 'password', name: 'Joe Davis' }
];

exports.find = function(id, done) {
  for (var i = 0, len = users.length; i < len; i++) {
    var user = users[i];
    if (user.id === id) {
      return done(null, user);
    }
  }
  return done(null, null);
};

exports.findByUsername = function(username, done) {
  for (var i = 0, len = users.length; i < len; i++) {
    var user = users[i];
    if (user.username === username) {
      return done(null, user);
    }
  }
  return done(null, null);
};

如果找到一个findByUsername只连接到db的方法,验证用户名是否存在,并从users集合中返回用户对象,那就太棒了。

关于如何用最少的hazzle解决这个问题的任何想法?

如果您需要更多代码,请与我们联系。

1 个答案:

答案 0 :(得分:0)

也许你需要mongojs

exports.findByUsername = function(username, done) {
    db.users.findOne({username: user.username},function(err, user) {
       if(err) return done(err);
       return done(null, user);
    });
};