2015-11-12 4 views
0

Ошибки происходит здесь (пользователь == правда!):паспорта местные не проходит сообщению

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 
    })); 

журнал показывает консоль, что сообщение приходит пустым. Но сообщение прекрасно приходит из другой функции (проверка captcha, используя тот же req.flash). Паспорт конфигурации:

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); 

ответ

0

Какая глупая ошибка, никогда не доверяйте учебники, всегда читал документы ... Паспорт передает сообщения через ошибки собственности, не сообщение собственности, поэтому добавление к шаблону Джейд являются:

if error!='' 
    div.form-group.alert.alert-danger 
     p #{error} 

Коррекция маршрутов:

res.render('index', { 
    title: 'Title', 
    message: req.flash('message'), 
    error: req.flash('error') 
}); 

Будьте также осторожны с успехом сообщения - возвращается также через специальное имущество, успех.