我使用护照本地策略构建了登录页面身份验证。 users.js 中的部分代码在这里成功..
router.post('/login',
passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}),
function(req, res) {
res.redirect('/');
});
但是我想通过ldap使用我的公司凭证来验证登录,我有自己的模块叫做“ bluepages ”,我已经替换了上面的块,如下所示。
router.post('/login',function(req,res){
//console.log(req.body);
res.redirect('/');
bluepages.authenticate(req.body.username,req.body.password,function(err,verified){
if(err) console.log(err);
else {
if(verified)
return res.redirect('/');
//console.log('Success');
else
return res.redirect('/users/login');
//console.log('Invalid Credentials');
}
});
});
当凭据正确时,我获得'成功'日志,当凭据不正确时,我获得'无效凭据'日志。这是完美的。但我的要求是res.redirect没有指向所需的视图。即使凭据正确,它仍保留在登录页面中。我得到以下错误,我无法解决它。能否帮助我如何指导意见。
_http_outgoing.js:344
throw new Error('Can\'t set headers after they are sent.');
^
Error: Can't set headers after they are sent.
答案 0 :(得分:0)
嗨,您应该在评论res.redirect('/');
//console.log(req.body)