#passport.js #passport-local #passport-facebook #passport-google-oauth
#passport.js #паспорт-локальный #passport-facebook #passport-google-oauth
Вопрос:
На данный момент у меня есть один файл с несколькими стратегиями паспортов для локальной и сторонней аутентификации. Сейчас я пытаюсь преобразовать каждую стратегию в свой собственный файл, но это выдает кучу ошибок.
Я попробовал это :
passport.use("local-signup", signupStrategy); //in the main file and
const signupStrategy = require('passport-local').Strategy({//function}); //in the other file
Но это приводит к ошибке «стратегии аутентификации должны иметь имя».
Как мне это исправить?
Ответ №1:
Вот как я абстрагирую стратегии в их собственные файлы. Также обратите внимание, что имя стратегии, указанное в 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;