From 8307460df890756dcada8a9cb409bcd97deb881f Mon Sep 17 00:00:00 2001 From: jperl Date: Mon, 4 Feb 2013 19:23:11 -0500 Subject: [PATCH] Return all basic google and facebook profile fields --- packages/accounts-facebook/facebook_server.js | 10 ++++++++-- packages/accounts-google/google_server.js | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/accounts-facebook/facebook_server.js b/packages/accounts-facebook/facebook_server.js index acbf26870f..6d64565268 100644 --- a/packages/accounts-facebook/facebook_server.js +++ b/packages/accounts-facebook/facebook_server.js @@ -9,12 +9,18 @@ var identity = getIdentity(accessToken); var serviceData = { - id: identity.id, accessToken: accessToken, - email: identity.email, expiresAt: (+new Date) + (1000 * response.expiresIn) }; + // include all fields from facebook + // http://developers.facebook.com/docs/reference/login/public-profile-and-friend-list/ + var whitelisted = ['id', 'email', 'name', 'first_name', + 'last_name', 'link', 'username', 'gender', 'locale', 'age_range']; + + var fields = _.pick(identity, whitelisted); + _.extend(serviceData, fields); + return { serviceData: serviceData, options: {profile: {name: identity.name}} diff --git a/packages/accounts-google/google_server.js b/packages/accounts-google/google_server.js index ee0b6be698..33e4975aec 100644 --- a/packages/accounts-google/google_server.js +++ b/packages/accounts-google/google_server.js @@ -7,12 +7,18 @@ var identity = getIdentity(accessToken); var serviceData = { - id: identity.id, accessToken: accessToken, - email: identity.email, expiresAt: (+new Date) + (1000 * response.expiresIn) }; + // include all fields from google + // https://developers.google.com/accounts/docs/OAuth2Login#userinfocall + var whitelisted = ['id', 'email', 'verified_email', 'name', 'given_name', + 'family_name', 'picture', 'locale', 'timezone', 'gender']; + + var fields = _.pick(identity, whitelisted); + _.extend(serviceData, fields); + // only set the token in serviceData if it's there. this ensures // that we don't lose old ones (since we only get this on the first // log in attempt)