From a8d08b1ff912523fbb9f02053a41bbca18efb58a Mon Sep 17 00:00:00 2001 From: Michael Q Larson Date: Tue, 30 Dec 2014 20:49:25 -0800 Subject: [PATCH] Revert "Revert "modify twitter auth to fail if mismatch between selected user and current user"" This reverts commit df335b00878b0aa4083635bcc690422fde027289. --- config/passport.js | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/config/passport.js b/config/passport.js index ab1c7426a31..4553e327b95 100644 --- a/config/passport.js +++ b/config/passport.js @@ -109,26 +109,32 @@ passport.use( } else { User.findOne({ twitter: profile.id }, function(err, existingUser) { if (err) { return done(err); } - var user = existingUser || new User(); - user.twitter = profile.id; - user.email = user.email || ''; - user.tokens.push({ - kind: 'twitter', - accessToken: accessToken, - tokenSecret: tokenSecret - }); - user.profile.name = user.profile.name || profile.displayName; - user.profile.username = user.profile.username || profile.username; + if (!existingUser || (existingUser && existingUser.twitter == profile.id)) { + var user = existingUser || new User(); + user.twitter = profile.id; + user.email = user.email || ''; + user.tokens.push({ + kind: 'twitter', + accessToken: accessToken, + tokenSecret: tokenSecret + }); + user.profile.name = user.profile.name || profile.displayName; + user.profile.username = user.profile.username || profile.username; - user.profile.location = - user.profile.location || profile._json.location; - user.profile.picture = - user.profile.picture || profile._json.profile_image_url_https; + user.profile.location = + user.profile.location || profile._json.location; + user.profile.picture = + user.profile.picture || profile._json.profile_image_url_https; - user.save(function(err) { - if (err) { return done(err); } - done(null, user); - }); + user.save(function (err) { + if (err) { + return done(err); + } + done(null, user); + }); + } else { + return done("Sorry, we experienced an error. This has been reported. Try logging in with a different authentication method."); + } }); } })