因此,最近我需要拆分我的本地策略,以适应不同类型用户登录我们网站的新需求。我们最新的代码如下:
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);
})
但是我们没有从中得到任何数据。
答案 0 :(得分:0)
好吧,经过大量测试并得出了一些结论,以防万一有人在途中发现了同样的石头:
在express()对象上初始化护照后,调用以下行以加载自定义配置文件:
require('./ yourpathtoconfigfileHERE / yourconfigfile')(passport);
这也是一个以正确的方式向我指出的链接: Passport: Unknown authentication strategy "local"