我基本上试图将登录方法分离到一个单独的文件(从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"
});
}
}
任何人都可以帮助我解决我的错误。
答案 0 :(得分:3)
passport.authenticate
构建一个必须传递给app.get
的{{3}}。这意味着loginCtrl
必须返回它。
app.get("/login", authController.loginCtrl())
loginCtrl(){
let passportConfig = new PassportConfig();
var config = passportConfig.config;
return passport.authenticate(config.passport.strategy, {
successRedirect: "/",
failureRedirect: "/login"
});
}