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

时间:2014-01-03 20:36:43

标签: node.js express passport.js

现在为多个项目使用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吗?

1 个答案:

答案 0 :(得分:31)

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

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

如果填充了user,这将在所有模板中提供req.user变量。确保在声明passport.session中间件之后但在任何路由之前声明中间件