此处(!user==true)出现错误:
if (!user) {
console.log('---2');
return done(null, false, {message: 'Incorrect username.'});
}路由器配置:
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
}));控制台日志显示,该消息到达时为空。但是消息完全来自另一个函数(验证码检查,使用相同的req.flash)。Passport配置:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
...
app.use(expressSession({secret: 'mySecretKey', resave: true, saveUninitialized: true }));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
var initPassport = require('./bin/auth/init-passport');
initPassport(passport);发布于 2015-11-13 15:43:14
真是个愚蠢的错误,从来不相信教程,总是读文档...Passport通过error属性传递消息,而不是消息属性,因此添加到Jade模板的内容包括:
if error!=''
div.form-group.alert.alert-danger
p #{error}路由中的更正:
res.render('index', {
title: 'Title',
message: req.flash('message'),
error: req.flash('error')
});还要注意成功消息-它也是通过特殊属性 success 返回的。
https://stackoverflow.com/questions/33680545
复制相似问题