0

此时,我有一个文件,其中包含用于本地和第三方身份验证的多个护照策略。我现在正在尝试将每个策略重构为自己的文件,但这会引发一堆错误。

我试过这个:

passport.use("local-signup", signupStrategy); //in the main file and 

const signupStrategy = require('passport-local').Strategy({//function}); //in the other file

但这会引发“身份验证策略必须有名称”错误。

我该如何解决?

4

1 回答 1

0

这就是我如何将策略抽象到他们自己的文件中。另请注意,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;
于 2020-09-16T21:06:37.620 回答