Passport.js - 将{user:req.user}传递给模板? [英] Passport.js - passing {user: req.user} to template implicitly?
问题描述
{user:req.user}
快速路线。呃,我忘了通过它,突然就是用户甚至没有登录了。 如何传递一个用户
变量,而不必像这样的每个路由都明确地写出来。
app.get = function(req,res,next){
res.render('home',{
title:'Home',
user:req.user
} );
};
我认为 everyauth 有这样的Express帮手,但是是Passport.js吗?
你可以使用简单的中间件:
app.use(function(req,res,next){
res.locals。 user = req.user;
next();
});
这将使一个用户
所有模板,只要 req.user
被填充。确保您在之后声明中间件,声明 passport.session
中间件,但在任何路由之前。
Using Passport.js and Express for multiple projects now, I have noticed myself doing this over and over again, namely specifying { user: req.user }
explicitly for my Express routes. Ocassionally I forget to pass it, and suddenly it's like user is not even logged in anymore.
How can I pass a user
variable in my routes without having to explicitly write it for each route like this?
app.get = function(req, res, next) {
res.render('home', {
title: 'Home',
user: req.user
});
};
I think everyauth has such Express helper, but does Passport.js?
You could use a simple middleware for that:
app.use(function(req, res, next) {
res.locals.user = req.user;
next();
});
This will make a user
variable available in all templates, provided that req.user
is populated. Make sure that you declare that middleware after you declare the passport.session
middleware, but before any routes.
这篇关于Passport.js - 将{user:req.user}传递给模板?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!