Categories
express javascript node.js passport.js

Get current logged in username using Passport JS?

I have created a simple user login application following an online tutorial using Node, Express and Passport. Login works correctly but I would like to get the username of the current logged in user and I can’t seem to get this working.

I have the following in my app.js:

/// Configuring Passport
var passport = require('passport');
var expressSession = require('express-session');
app.use(expressSession({
secret: 'cookie_secret',
name: 'cookie_name',
proxy: true,
resave: true,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session({
secret: 'cookie_secret',
name: 'cookie_name',
proxy: true,
resave: true,
saveUninitialized: true
}));

From what I read in similar posts, I need to expose the username so that I may use it in other files. I tried to do this in my app.js:

app.get('/home', function(req, res) {
res.render('home.jade', { username: req.user.username });
});

Home is a route where I would like to use the the username, and I am trying to access the username with an alert like the following:

alert(req.user.username);

This does not work, the req object is undefined…I’m not sure what I am missing?


Managed to get this working. In my app.js I have:

app.get('/home', function(req, res) {
res.render('home.jade', { username: req.user.username });
});

And then in my /home route I can access the username by doing:

req.user.username