Express Passport身份验证自定义回调中的用户始终为false

Express Passport身份验证自定义回调中的用户始终为false,express,callback,passport.js,passport-local,Express,Callback,Passport.js,Passport Local,我正在尝试使用Passport和Express的本地身份验证,我有两个单独的登录路径:一个用于网站,用于重定向,另一个用于移动应用,我希望返回JSON对象。重定向路由有效。但是,将相同的用户名和密码发布到另一个路由会收到登录失败的JSON响应。我的策略如下: passport.use('local-signin', new LocalStrategy( {passReqToCallback : true}, function(req, username, password, done)

我正在尝试使用Passport和Express的本地身份验证,我有两个单独的登录路径:一个用于网站,用于重定向,另一个用于移动应用,我希望返回JSON对象。重定向路由有效。但是,将相同的用户名和密码发布到另一个路由会收到登录失败的JSON响应。我的策略如下:

passport.use('local-signin', new LocalStrategy(
  {passReqToCallback : true},
  function(req, username, password, done) {
    funct.localAuth(username, password)
    .then(function (user) {
      if (user) {
        console.log("LOGGED IN AS: " + user.username);
        req.session.success = 'You are successfully logged in ' + user.username + '!';
        return done(null, user);
      }
      if (!user) {
        console.log("COULD NOT LOG IN");
        req.session.error = 'Could not log user in. Please try again.'; //inform user could not log them in
        return done(null, false, { message: 'User not found' });
      }
    })
    .fail(function (err){
      console.log(err.body);
      return done(err);
    });
  }
));
这是我使用它的两个地方:

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

app.post('/api/login', function(req, res, next) {
  passport.authenticate('local-signin', function(err, user, info) {
    if (err) {
      return res.json(user);
    }
    if (!user) {
      return res.json(true);
    }
    req.logIn(user, function(err) {
      if (err) {
        return next(err);
      }
      return res.json(user);
    });
  })
  (req, res, next);
});
我从“/login”获得成功重定向,但是“/api/login”用“true”回复(如果“user”为“false”,我为其设置的JSON响应)。这对我来说没有任何意义,但我找不到代码有任何问题


你知道这里的问题是什么吗?谢谢。

您是否检查了Error和User的值?res.json(User)结果为“false”;我没有检查err(应该检查),也没有尝试从服务器端查看用户。但我本周回到了这个项目,结果发现我在邮递员上错误地格式化了POST数据;oops.您是否检查了Error和User的值??res.json(User)结果为'false';我没有检查err(应该检查),也没有尝试从服务器端查看用户。但我本周回到了这个项目,结果发现我在邮递员上错误地格式化了POST数据;哎呀。