Koa、Passport、Monk に問題があります。
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;
これで問題なく動作しますが、ここで if (username === 'test' && password === 'test') の代わりに MongoDb データベースを使用するにはどうすればよいですか?
私はこの機能を追加しようとしました:
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 では、すべてがどのように機能するかを理解するのに本当に苦労しています..