passport.authenticate не работает должным образом с nodejs
Я в основном пытаюсь выделить методы входа в отдельный файл (из app.js).
Это прекрасно работает следующим образом:
== app.js ==
app.get("/login", passport.authenticate(passportConfig.config.passport.strategy,
{
successRedirect: "/",
failureRedirect: "/login"
})
);
Но когда я разделяю метод на другой файл, перенаправление (или, возможно, аутентификация не работает)
== Новый app.js
app.get("/login", authController.loginCtrl)
== AuthenticationController
import PassportConfig from './passportConfig';
import passport from 'passport';
export default class AuthenticationController{
constructor(){
}
loginCtrl(){
let passportConfig = new PassportConfig();
var config = passportConfig.config;
passport.authenticate(config.passport.strategy, {
successRedirect: "/",
failureRedirect: "/login"
});
}
}
Может кто-нибудь, пожалуйста, помогите мне, что я делаю неправильно.
1 ответ
Решение
passport.authenticate
создает связующее промежуточное ПО, которое должно быть передано app.get
, Это значит loginCtrl
должен вернуть его.
app.get("/login", authController.loginCtrl())
loginCtrl(){
let passportConfig = new PassportConfig();
var config = passportConfig.config;
return passport.authenticate(config.passport.strategy, {
successRedirect: "/",
failureRedirect: "/login"
});
}