我以为我遵循了文档,但我得到了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中打印任何内容?
有什么想法吗?