现在为多个项目使用Passport.js和Express,我注意到自己一遍又一遍地这样做,即明确为我的Express路线指定{ user: req.user }
。偶尔我会忘记传递它,突然间用户甚至不再登录了。
如何在路线中传递user
变量,而不必为此类路线明确写入?
app.get = function(req, res, next) {
res.render('home', {
title: 'Home',
user: req.user
});
};
我认为everyauth有这样的快速助手,但是有Passport.js吗?
答案 0 :(得分:31)
你可以使用一个简单的中间件:
app.use(function(req, res, next) {
res.locals.user = req.user;
next();
});
如果填充了user
,这将在所有模板中提供req.user
变量。确保在声明passport.session
中间件之后但在任何路由之前声明中间件。