【问题标题】:LocalStrategy function never calledLocalStrategy 函数从未被调用
【发布时间】:2015-02-19 23:32:19
【问题描述】:

我尝试使用 express4 / passportjs 设置简单的本地策略身份验证,但从未调用身份验证函数: 这是我的代码

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
app.use(compress());  
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

/*  AUTHENTIFICATION */

app.use(passport.initialize());
app.use(passport.session());


passport.serializeUser(function(user, done) {
  done(null, user);
});

passport.deserializeUser(function(user, done) {
  done(null, user);
});

passport.use(new LocalStrategy(
  function(username, password, done) { //THIS FUNCTION IS NEVER CALLED
    console.log("Local strategy");
  }
));


app.post('/login', function(req, res) {
    console.log("user : ", req.body.username);
    console.log("password : ", req.body.password);
    passport.authenticate('local', { successRedirect: '/',
                                     failureRedirect: '/login' })
});

/*  !AUTHENTIFICATION */

app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'bower_components')));
app.use(express.static(path.join(__dirname, 'controllers')));
app.use(express.static(path.join(__dirname, 'modules')));
app.use('/', routes);
app.use('/users', users);

当我在 /login 中发送 post 请求时,我在日志中看到用户名和密码,但 password.authentificate 方法没有做任何事情。 它应该调用 LocalStrategy 函数和 console.log('strategy') 但它没有。

有人知道如何解决吗?

谢谢

【问题讨论】:

  • 可能是您正在成功/失败重定向并且您的控制台正在刷新?

标签: node.js express passport.js


【解决方案1】:

authenticate()'s function signature is standard Connect middleware 来自here

所以req, res, next的引用应该被传递

所以你可以将它用作路由中间件

app.post('/login', passport.authenticate('local', { successRedirect: '/',
                               failureRedirect: '/login' }));

或者

app.post('/login', function(req, res, next) {
    passport.authenticate('local', { successRedirect: '/',
                                 failureRedirect: '/login' })(req, res, next);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    相关资源
    最近更新 更多