title: Google oauth not returning email passport authentication
body: <p>I am trying to make a sign in with google button using passport module of node js. I am trying to get person's email id, name, profile pic. I am trying to download pic to local server. Google is not returning email id even after adding 'email' to scope and nor the returned link for profile pic is working. I have looked into various answers to this question but all say to include userinfo.email. It has been deprecated now. As per google documentation new scope parameter is email.</p>
  
  <p>Below is my code. Any help is appreciated.</p>
  
  <p>Passport</p>
  
  <pre><code>passport.use(new GoogleStrategy({
  
      clientID        : configAuth.googleAuth.clientID,
      clientSecret    : configAuth.googleAuth.clientSecret,
      callbackURL     : configAuth.googleAuth.callbackURL,
  },
  function(token, refreshToken, profile, done) {
  
      // make the code asynchronous
      // User.findOne won't fire until we have all our data back from Google
      process.nextTick(function() {
  
          // try to find the user based on their google id
          User.findOne({ 'google.id' : profile.id }, function(err, user) {
              if (err)
                  return done(err);
  
              if (user) {
  
                  // if a user is found, log them in
                  return done(null, user);
              } else {
                  // if the user isnt in our database, create a new user
                  var newUser          = new User();
                  console.log(profile);
                  //JSON.parse(profile);
                  // set all of the relevant information
                  newUser.google.id    = profile.id;
                  newUser.google.token = profile.token;
                  newUser.google.name  = profile.displayName;
                  newUser.google.uname = profile.emails[0].value; // pull the first email
                  newUser.google.dp    = profile._json.picture;
                  console.log('url is');
                  console.log(newUser.google.name);
                  console.log(newUser.google.dp);
                  //console.log(profile.picture);
                  Download(newUser.google.uname, newUser.google.dp,function(err){
                      if(err)
                          console.log('error in dp');
                      else
                          console.log('Profile Picture downloaded');
                  });
  
                  // save the user
                  newUser.save(function(err) {
                      if (err)
                          throw err;
                      return done(null, newUser);
                  });
              }
          });
      });
  
  }));
  };
  </code></pre>
  
  <p>routes.js</p>
  
  <pre><code>    app.get('/connect/google', passport.authorize('google', { scope : ['profile', 'email'] }));
  
      // the callback after google has authorized the user
      app.get('/connect/google/callback',
          passport.authorize('google', {
              successRedirect : '/profile',
              failureRedirect : '/'
          }));
  </code></pre>
  
  <p>download.js</p>
  
  <pre><code>    module.exports = function(username, uri, callback){
  var destination;
  
  request(uri).pipe(fs.createWriteStream("./downloads/"+username+".png"))
  .on('close', function(){
      console.log("saving process is done!");
  });
  </code></pre>