这就是我如何将策略抽象到他们自己的文件中。另请注意,in 中给出的策略名称passport.use('local-signup')
必须与passport.authenticate('local-signup')
路由中的名称匹配。
main.js
// Require your strategies
const LocalStrategy = require('passport-local').Strategy;
// Require all the strategy callbacks
const localSignUpStrategy = require('./strategies/localSignup');
// Strategy configurations
passport.use('local-signup', new LocalStrategy(localSignUpStrategy));
localSignup.js
const localSignUpStrategy = async (username, password, done) => {
try {
const { dataValues: user } = await User.findOne({ where: { username } }) || {};
// Send found user ID
return done(null, user);
} catch (err) {
return done(err);
}
};
module.exports = localLoginStrategy;