diff --git a/common/models/User-Identity.js b/common/models/User-Identity.js index 87a7ffef57f..779ad2f48f2 100644 --- a/common/models/User-Identity.js +++ b/common/models/User-Identity.js @@ -79,7 +79,7 @@ export default function(UserIdent) { } // if user signed in with github refresh their info - if (userIdent.provider === 'github-login') { + if (/github/.test(userIdent.provider)) { debug("user isn't github cool or username from github is different"); setProfileFromGithub(user, profile, profile._json); userChanged = true; diff --git a/server/passport-providers.js b/server/passport-providers.js index ddd29f64db2..5ffcbf1a09f 100644 --- a/server/passport-providers.js +++ b/server/passport-providers.js @@ -141,5 +141,19 @@ module.exports = { clientSecret: process.env.GITHUB_SECRET, scope: ['email'], failureFlash: true + }, + 'github-link': { + provider: 'github', + authScheme: 'oauth2', + module: 'passport-github', + authPath: '/link/github', + callbackURL: '/link/github/callback', + callbackPath: '/link/github/callback', + successRedirect: successRedirect, + failureRedirect: failureRedirect, + clientID: process.env.GITHUB_ID, + clientSecret: process.env.GITHUB_SECRET, + scope: ['email'], + failureFlash: true } }; diff --git a/server/server.js b/server/server.js index 93a0f06d8dd..bf0cb8c3967 100755 --- a/server/server.js +++ b/server/server.js @@ -102,7 +102,7 @@ var passportOptions = { userObj.email = email; } - if (provider === 'github-login') { + if (/github/.test(provider)) { setProfileFromGithub(userObj, profile, profile._json); } return userObj;