passport.authenticate 无法正常使用 nodejs

passport.authenticate not working properly with nodejs

我基本上是在尝试将登录方法分离到一个单独的文件中(从 app.js 中分离出来)。

这样可以很好地工作:

== app.js ==

app.get("/login", passport.authenticate(passportConfig.config.passport.strategy, 
          {
            successRedirect: "/",
            failureRedirect: "/login"
            })
        );

但是当我将方法分离到不同的文件然后重定向(或者可能是身份验证似乎不起作用)

== 新 app.js

app.get("/login", authController.loginCtrl)

== 认证控制器

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"
        });
    }
}

任何人都可以帮助我我做错了什么。

passport.authenticate 构建一个必须传递给 app.getconnect middleware。这意味着 loginCtrl 必须 return 它。

app.get("/login", authController.loginCtrl())

loginCtrl(){
    let passportConfig = new PassportConfig();
    var config = passportConfig.config;

    return passport.authenticate(config.passport.strategy, {
        successRedirect: "/",
        failureRedirect: "/login"
    });
}