此处发生错误(!user == true):
$.fancybox({
href: "https://www.youtube.com/embed/8CR-zM6jwD8?rel=0&autoplay=1",
type: "iframe",
beforeShow: function () {
// Find the iframe ID
var id = $.fancybox.inner.find('iframe').attr('id');
// Create video player object and add event listeners
var player = new YT.Player(id, {
events: {
'onStateChange': function (event) {
console.log('onStateChange fired');
if (event.data === 0) {
console.log('ended');
$.fancybox.close();
} // if
} // onStateChange
} // events
}); // YT.Player
loadPage();
}, // beforeShow
}); // fancybox
路由器配置:
if (!user) {
console.log('---2');
return done(null, false, {message: 'Incorrect username.'});
}
控制台日志显示,该消息到空。但消息完全来自另一个函数(验证码检查,使用相同的req.flash)。护照配置:
router.get('/', function(req, res, next) {
console.log('Message:'+req.flash('message'));
res.render('index', { title: 'Title', message: req.flash('message') });
});
router.post('/login', passport.authenticate('local', {
successRedirect: '/users/home',
failureRedirect: '/',
failureFlash: true
}));
答案 0 :(得分:0)
多么愚蠢的错误,从不信任教程,总是阅读文档... Passport通过错误属性传递消息,而不是消息属性,因此除了Jade模板之外:
if error!=''
div.form-group.alert.alert-danger
p #{error}
路线更正:
res.render('index', {
title: 'Title',
message: req.flash('message'),
error: req.flash('error')
});
请注意成功消息 - 也可通过特殊属性成功返回。