无法获得护照/快递与LocalStrategy合作。获得401

时间:2013-09-03 00:47:04

标签: node.js express passport.js

我以为我遵循了文档,但我得到了401响应。 我有一个简单的POST表单,收到401响应。

这是我的示例代码(案例1):

passport.serializeUser(function(user, done) {
  console.log("Serializing:", user);
  done(null, JSON.parse(user));
});
passport.deserializeUser(function(obj, done) {
  console.log("Deserializing:" + obj);
  done(null, obj);
});

passport.use(new LocalStrategy(
  function(username, password, done) {
    console.log("Authenticating.....:" + username);
    User.findOne({ username: username }, function(err, user) {
      if (err) { return done(err); }
      if (!user) {
        return done(null, false, { message: 'Incorrect username.' });
      }
      if (!user.validPassword(password)) {
        return done(null, false, { message: 'Incorrect password.' });
      }
      return done(null, user);
    });
  }
));

app.post('/auth/login',
passport.authenticate('local'),
  function (req, res) {
    console.log("Made it here");
  }
);

以上代码从不打印发送到console.log的任何消息。我只看到来自nodejs / express的消息,显示控制台中的“POST / auth / login 401”。

有趣的是我更改了app.post函数,如下所示(案例2):

app.post('/auth/login',
passport.authenticate('local', {
    successRedirect:'/partials/playlist/playlists',
    failureRedirect:'/partials/welcome'
    }),
    function (req, res) {
        console.log("Made it here");
    }
);

这次被调用的唯一链接是/ partials / welcome'重定向为“POST / auth / login 302”。同样,控制台中没有消息记录。

我的问题: 为什么两个app.post实现的不同行为(CASE 1 vs CASE 2)? 为什么我的“SucessRedirect”从未在CASE 2中调用过? 为什么没有在console.log中打印任何内容?

有什么想法吗?

0 个答案:

没有答案