我已经设置了在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解决这个问题的任何想法?
如果您需要更多代码,请与我们联系。
答案 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);
});
};