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

Setting up OAuth2 on Node - easiest way to handle users in MongoDB?

本文关键字:处理 用户 方法 最简单 MongoDB 节点 设置 OAuth2      更新时间:2023-09-26

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

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

我已经尝试了不同的解决方案,但并没有真正能够让任何解决方案令人满意,所以我希望这里有人能有一种更简单的方法来实施它。我宁愿不使用猫鼬,而只使用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 只连接到数据库,验证用户名是否存在,并从用户集合中返回用户对象。

关于如何以最少的麻烦解决这个问题的任何想法?

如果您需要更多我的代码,请告诉我。

也许mongojs是你需要的?

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