Get current logged in username using Passport JS?

Viewed 21649

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
3 Answers
Related