Nodejs Passport display username
Helpers are not supported with Express v4.x
A good alternative is to create a middleware such as:
app.use((req, res, next) => {
res.locals.user = req.user;
next();
});
Then you can use the "user" variable in your views.
The user (as supplied by the verify callback), is set as a property on the request at req.user
.
Any properties of the user can be accessed through that object, in your case req.user.username
and req.user.displayName
.
If you're using Express, and want to expose the username as a variable within a template, that can be done when rendering:
app.get('/hello', function(req, res) {
res.render('index.jade', { username: req.user.username });
});
Routes Code -
router.get('/', ensureAuthenticated, function(req, res){
res.render('administrator/dashboard',{title: 'Dashboard', user:req.user.username });
console.log(req.user.username);
});
.ejs File Code -
Welcome: <%= user %>
I've created a simple view helper to have access to authentication status and user information
var helpers = {};
helpers.auth = function(req, res) {
var map = {};
map.isAuthenticated = req.isAuthenticated();
map.user = req.user;
return map;
}
app.dynamicHelpers(helpers);
After doing that you will be able to acess the object auth
on your views, for example auth.user.xxxx
.