pasaporte local con node-jwt-simple

¿Cómo puedo combinar el pasaporte local para devolver un token JWT en una autenticación exitosa?

Quiero usarnode-jwt-simple y mirando apasaporte.js No estoy seguro de cómo hacerlo.

var passport = require('passport')
  , LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({ username: username }, function(err, user) {
      if (err) { return done(err); }
      if (!user) {
        return done(null, false, { message: 'Incorrect username.' });
      }
      if (!user.validPassword(password)) {
        return done(null, false, { message: 'Incorrect password.' });
      }
      return done(null, user);
    });
  }
));

¿Es posible devolver el token cuando se realiza la llamada ()? Algo como esto ... (solo pseudo código)

if(User.validCredentials(username, password)) {
  var token = jwt.encode({username: username}, tokenSecret);
  done(null, {token : token}); //is this possible?
}

Si no, ¿cómo puedo devolver el token?

Respuestas a la pregunta(3)

Su respuesta a la pregunta