【发布时间】:2016-03-27 14:35:32
【问题描述】:
我正在构建一个简单的 SPA,使用 MEAN 堆栈和 Passportjs 进行身份验证,用户可以在其中创建、查看和回答民意调查。页面路由是通过 angular 和 $routeProvider 完成的。用于创建/管理投票的 api 调用和注册/登录调用是通过快速路由完成的。一切正常,我可以创建一个用户,也可以登录,但我现在遇到登录或注册失败时护照生成的闪存消息的问题。
我正在将消息分配给我的 passport.js 文件中的 req.flash,但我找不到如何将这些消息发送到客户端以及如何接收和显示它们。我发现的所有示例和问答都使用专门的快速路由和模板作为 ejs。我对它们没有任何反对意见,但如果可能的话,我宁愿不使用它们。
这里有一些sn-ps:
注册功能发现邮件已经存在时返回语句:
return done(null, false, req.flash('signupMessage', 'That email is already taken.'));
注册路由通过快递完成。重定向工作正常,我可以看到数据库中的用户:
app.post('/signup', passport.authenticate('local-signup', {
successRedirect : '/',
failureRedirect : '/signup',
failureFlash: true
}));
如果我只使用快速路由并且我使用的是 ejs,我可以实现这个 sn-p - 但我宁愿不这样做。问题是:有什么替代方案?如何将 req.flash 中设置的消息发送给客户端,如何检索它们?
app.get('/signup', function(req, res) {
// render the page and pass in any flash data if it exists
res.render('signup.ejs', { message: req.flash('signupMessage') });
});
【问题讨论】:
-
旧的类似问题(我使用了完全相同的教程)但仍然没有答案。 stackoverflow.com/questions/25464798/…
标签: javascript angularjs express passport.js mean