无法在PassportJS中使用自定义命名的本地策略

时间:2018-07-12 21:46:55

标签: node.js express passport.js passport-local

因此,最近我需要拆分我的本地策略,以适应不同类型用户登录我们网站的新需求。我们最新的代码如下:

const localLogin = new LocalStrategy(localOptions, function(email, password, done) {
   // Verify this email and password, call done with the user
   // if it is correct email and password
   // otherwise, call done with false

});
passport.use(localLogin);

然后在我们的用户文件中,我们像这样调用身份验证:

const requireSignin = passport.authenticate('local', {session: false});

router.post('/signin', requireSignin, (request, response, next) => {
    // User already had their email and password Auth'd
    // Give him a token

});

我们已经做了一些更改,使其保持如下状态:

passport.use('local.one', localLogin);

然后按如下方式调用它:

const requireSignin = passport.authenticate('local.one', {session: false});

我们尝试了所有以不同答案阅读的内容,但无法正常工作。似乎离目前还很近...请帮助。

P.D .:我们还试图获得以下答复:

passport.authenticate('local.one', function(err, user, info) {
    console.log('HERE')
    if (err) return next(err);
    if (!user) return next(null, false);
    next(null, user);
})

但是我们没有从中得到任何数据。

1 个答案:

答案 0 :(得分:0)

好吧,经过大量测试并得出了一些结论,以防万一有人在途中发现了同样的石头:

  • 日志!哇,这很有帮助...
  • 在express()对象上初始化护照后,调用以下行以加载自定义配置文件:

    require('./ yourpathtoconfigfileHERE / yourconfigfile')(passport);

这也是一个以正确的方式向我指出的链接: Passport: Unknown authentication strategy "local"