Passport.js – 将{user:req.user}隐式传递给模板?

现在使用Passport.js和Express进行多个项目,我已经注意到自己一遍又一遍地做了这些工作,即为我的快速路由明确指定{ user: req.user } 。 偶尔忘记通过它,突然就像用户甚至没有login了。

我怎么能传递一个user variables在我的路线,而不必显式地写这样的每条路线?

 app.get = function(req, res, next) { res.render('home', { title: 'Home', user: req.user }); }; 

我认为everyauth有这样的快递帮手,但Passport.js吗?

你可以使用一个简单的中间件:

 app.use(function(req, res, next) { res.locals.user = req.user; next(); }); 

这将使uservariables在所有模板中可用,前提是req.user被填充。 确保声明passport.session中间件之后,但在任何路由之前声明该中间件。