Имам някои проблеми с Коа, Паспорт и Монк.
Бих искал да имам просто локално удостоверяване с 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 тук вместо if (потребителско име === 'test' && парола === '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 наистина се боря да разбера как работи всичко..