From a81ce41a803a40260385f50f57a1b2b794e6bc2a Mon Sep 17 00:00:00 2001 From: Yoshioka Tsuneo Date: Wed, 22 Jul 2015 17:32:15 +0900 Subject: [PATCH] Specify field name like email to Facebook Oauth settings(profileFields) On Facebook Graph API v2.4, only "id" or "name" fields is retrived by default, So, Facebook login caused error message: =============================================== /app/server/auth/facebook/passport.js:21 ^ email: profile.emails[0].value, TypeError: Cannot read property '0' of undefined =============================================== --- .../server/auth(auth)/facebook(facebookAuth)/passport.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js b/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js index 54574efb6..b84a3b4b9 100644 --- a/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js +++ b/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js @@ -5,7 +5,8 @@ exports.setup = function (User, config) { passport.use(new FacebookStrategy({ clientID: config.facebook.clientID, clientSecret: config.facebook.clientSecret, - callbackURL: config.facebook.callbackURL + callbackURL: config.facebook.callbackURL, + profileFields: ['displayName', 'name', 'profileUrl', 'id', 'email', 'photos', 'gender', 'locale', 'timezone', 'updated_time', 'verified'] }, function(accessToken, refreshToken, profile, done) { User.findOne({