私はCustomStrategyとLocalStrategyを一緒に使用しました。
passport.use(new LocalStrategy({
usernameField: 'email'
}, function(email, password, done) {
User.findOne({
email: email.toLowerCase()
}, function(err, user) {
if (!user) {
return done(null, false, {
msg: 'Email ' + email + ' not found.'
});
}
user.comparePassword(password, function(err, isMatch) {
if (isMatch) {
return done(null, user);
} else {
return done(null, false, {
msg: 'Invalid email or password.'
});
}
});
});
}));
passport.use(new CustomStrategy(
function(req, done) {
Invite.findById(req.params.id, function(err, invite) {
if (err) {
console.log(err)
}
if (!invite) {
return done(null, false, {
msg: 'Invite not found.'
});
}
done(null, invite);
});
}
));