首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >passport-local不传递消息

passport-local不传递消息
EN

Stack Overflow用户
提问于 2015-11-13 04:18:49
回答 1查看 104关注 0票数 0

此处(!user==true)出现错误:

代码语言:javascript
复制
if (!user) {
        console.log('---2');
        return done(null, false, {message: 'Incorrect username.'});
    }

路由器配置:

代码语言:javascript
复制
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配置:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2015-11-13 15:43:14

真是个愚蠢的错误,从来不相信教程,总是读文档...Passport通过error属性传递消息,而不是消息属性,因此添加到Jade模板的内容包括:

代码语言:javascript
复制
if error!=''
    div.form-group.alert.alert-danger
        p #{error}

路由中的更正:

代码语言:javascript
复制
res.render('index', { 
    title: 'Title', 
    message: req.flash('message'),
    error: req.flash('error') 
});

还要注意成功消息-它也是通过特殊属性 success 返回的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33680545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档