我在Koa,Passport和Monk有一些麻煩。Koa和護照與MongoDb
我想通過Passport進行簡單的本地身份驗證。我跟着一些教程,並得到儘可能的:(auth.js)
const
passport = require('koa-passport'),
LocalStrategy = require('passport-local').Strategy,
monk = require('monk'),
wrap = require('co-monk'),
db = monk('localhost/try'),
users = wrap(db.get('users'));
var user = {
id: 1,
username: 'test'
};
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
done(null, user);
});
passport.use(new LocalStrategy(
function(username, password, done) {
if (username === 'test' && password === 'test') {
return done(null, user);
} else {
return done(null, false);
}
}
));
module.exports = passport;
現在這工作正常,但我怎麼能在這裏使用的,而不是如果(用戶名===「測試」我的MongoDB數據庫& & password ==='test')?
我試圖添加此功能:
function *getUser(name) {
var useri = yield users.find({name:name});
return useri;
};
,然後用它是這樣的:
passport.use(new LocalStrategy(
function(username, password, done) {
var useri = getUser(username);
console.log(useri);
if (username === 'test' && password === 'test') {
return done(null, user);
} else {
return done(null, false);
}
}
));
但只有最終得到{}在我的控制檯。
那麼我該如何做到這一點?在Express中這一切都很容易,但是對於這個Koa我很努力去理解它是如何工作的。
所以你必須使用'co',希望避免它! – 2015-03-29 05:04:58