From f6e7a12ac9c08960ba89426a3ab64edbf9b22f6c Mon Sep 17 00:00:00 2001 From: Adam Keenan Date: Tue, 14 Jul 2015 01:44:08 -0500 Subject: [PATCH 1/2] fix(oauth): Facebook API updated Facebook removed most default info. Must now explicitly ask for email. They also do not send usernames anymore. --- .../server/auth(auth)/facebook(facebookAuth)/passport.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js b/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js index 92911b22f..00b87a226 100644 --- a/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js +++ b/app/templates/server/auth(auth)/facebook(facebookAuth)/passport.js @@ -5,7 +5,11 @@ 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', + 'emails' + ] }, function(accessToken, refreshToken, profile, done) { <% if (filters.mongooseModels) { %>User.findOneAsync({<% } @@ -19,7 +23,6 @@ exports.setup = function(User, config) { name: profile.displayName, email: profile.emails[0].value, role: 'user', - username: profile.username, provider: 'facebook', facebook: profile._json }); From 136f15e9188ba94ec050f274af730b622b87a527 Mon Sep 17 00:00:00 2001 From: Adam Keenan Date: Tue, 14 Jul 2015 19:10:21 -0500 Subject: [PATCH 2/2] fix(oauth): Google scopes deprecated The following scopes are no longer supported: - https://www.googleapis.com/auth/userinfo.profile - https://www.googleapis.com/auth/userinfo.email Use the following in place - profile - email Passport also does not provide the username, but we can get it from the email. --- app/templates/server/auth(auth)/google(googleAuth)/index.js | 4 ++-- .../server/auth(auth)/google(googleAuth)/passport.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/templates/server/auth(auth)/google(googleAuth)/index.js b/app/templates/server/auth(auth)/google(googleAuth)/index.js index 673c22db4..7789def92 100644 --- a/app/templates/server/auth(auth)/google(googleAuth)/index.js +++ b/app/templates/server/auth(auth)/google(googleAuth)/index.js @@ -10,8 +10,8 @@ router .get('/', passport.authenticate('google', { failureRedirect: '/signup', scope: [ - 'https://www.googleapis.com/auth/userinfo.profile', - 'https://www.googleapis.com/auth/userinfo.email' + 'profile', + 'email' ], session: false })) diff --git a/app/templates/server/auth(auth)/google(googleAuth)/passport.js b/app/templates/server/auth(auth)/google(googleAuth)/passport.js index 0c9462a8d..f74594c12 100644 --- a/app/templates/server/auth(auth)/google(googleAuth)/passport.js +++ b/app/templates/server/auth(auth)/google(googleAuth)/passport.js @@ -19,7 +19,7 @@ exports.setup = function(User, config) { name: profile.displayName, email: profile.emails[0].value, role: 'user', - username: profile.username, + username: profile.emails[0].value.split('@')[0], provider: 'google', google: profile._json });