Skip to content

Commit 4c0d934

Browse files
committed
Back-out most of #564
* This ends our migration of OpenID 2.0 to OAuth 2.0 which google ended quite a while ago * This also uses OAuth 2.0 exclusively ... same token returned on tested existing and new account Closes #889
1 parent 810b73e commit 4c0d934

File tree

5 files changed

+10
-69
lines changed

5 files changed

+10
-69
lines changed

README.md

+5-11
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ Repository | Reference | Recent Version
4545
[jquery][jQueryGHUrl] | [Documentation][jQueryDOCUrl] | [![NPM version][jQueryNPMVersionImage]][jQueryNPMUrl]
4646
[js-beautify][js-beautifyGHUrl] | [Documentation][js-beautifyDOCUrl] | [![NPM version][js-beautifyNPMVersionImage]][js-beautifyNPMUrl]
4747
[jsdom][jsdomGHUrl] | [Documentation][jsdomDOCUrl] | [![NPM version][jsdomNPMVersionImage]][jsdomNPMUrl]
48-
[jwt-simple][jwt-simpleGHUrl] | [Documentation][jwt-simpleDOCUrl] | [![NPM version][jwt-simpleNPMVersionImage]][jwt-simpleNPMUrl]
4948
[kerberos][kerberosGHUrl] | [Documentation][kerberosDOCUrl] | [![NPM version][kerberosNPMVersionImage]][kerberosNPMUrl]
5049
[less-middleware][less-middlewareGHUrl] [¹][lessGHUrl] | [Documentation][less-middlewareDOCUrl] [¹][lessDOCUrl] | [![NPM version][less-middlewareNPMVersionImage]][less-middlewareNPMUrl]
5150
[marked][markedGHUrl] | [Documentation][markedDOCUrl] | [![NPM version][markedNPMVersionImage]][markedNPMUrl]
@@ -63,7 +62,7 @@ Repository | Reference | Recent Version
6362
[passport-facebook][passport-facebookGHUrl] | [Documentation][passport-facebookDOCUrl] | [![NPM version][passport-facebookNPMVersionImage]][passport-facebookNPMUrl] ![OAuth2][oauth2Logo]
6463
[passport-github][passport-githubGHUrl] | [Documentation][passport-githubDOCUrl] | [![NPM version][passport-githubNPMVersionImage]][passport-githubNPMUrl] ![OAuth2][oauth2Logo]
6564
[passport-gitlab2][passport-gitlab2GHUrl] | [Documentation][passport-gitlab2DOCUrl] | [![NPM version][passport-gitlab2NPMVersionImage]][passport-gitlab2NPMUrl] ![OAuth2][oauth2Logo]
66-
[passport-google-oauth][passport-google-oauthGHUrl] | [Documentation][passport-google-oauthDOCUrl] | [![NPM version][passport-google-oauthNPMVersionImage]][passport-google-oauthNPMUrl] ![oauth1][oauth1Logo] ![OAuth2][oauth2Logo]
65+
[passport-google-oauth2][passport-google-oauth2GHUrl] | [Documentation][passport-google-oauth2DOCUrl] | [![NPM version][passport-google-oauth2NPMVersionImage]][passport-google-oauth2NPMUrl] ![OAuth2][oauth2Logo]
6766
[passport-imgur][passport-imgurGHUrl] | [Documentation][passport-imgurDOCUrl] | [![NPM version][passport-imgurNPMVersionImage]][passport-imgurNPMUrl] ![oauth][oauthLogo]
6867
[passport-reddit][passport-redditGHUrl] | [Documentation][passport-redditDOCUrl] | [![NPM version][passport-redditNPMVersionImage]][passport-redditNPMUrl] ![OAuth2][oauth2Logo]
6968
[passport-steam][passport-steamGHUrl] <br />&#x22D4; [`OpenID2`][passport-steamGHOpenIDUrl] | [Documentation][passport-steamDOCUrl] | [![NPM version][passport-steamNPMVersionImage]][passport-steamNPMUrl] ![OpenID][openidLogo] [&#x22D4;][passport-openid]
@@ -257,11 +256,6 @@ Outdated dependencies list can also be achieved with `$ npm --depth 0 outdated`
257256
[jsdomGHUrl]: https://github.com/tmpvar/jsdom
258257
[jsdomDOCUrl]: https://github.com/tmpvar/jsdom/blob/master/README.md
259258

260-
[jwt-simpleNPMUrl]: https://www.npmjs.com/package/jwt-simple
261-
[jwt-simpleNPMVersionImage]: https://img.shields.io/npm/v/jwt-simple.svg?style=flat
262-
[jwt-simpleGHUrl]: https://github.com/hokaccha/node-jwt-simple
263-
[jwt-simpleDOCUrl]: https://github.com/hokaccha/node-jwt-simple/blob/master/README.md
264-
265259
[kerberosNPMUrl]: https://www.npmjs.com/package/kerberos
266260
[kerberosNPMVersionImage]: https://img.shields.io/npm/v/kerberos.svg?style=flat
267261
[kerberosGHUrl]: https://github.com/christkv/kerberos
@@ -352,10 +346,10 @@ Outdated dependencies list can also be achieved with `$ npm --depth 0 outdated`
352346
[passport-gitlab2NPMUrl]: https://www.npmjs.com/package/passport-gitlab2
353347
[passport-gitlab2NPMVersionImage]: https://img.shields.io/npm/v/passport-gitlab2.svg?style=flat
354348

355-
[passport-google-oauthGHUrl]: https://github.com/jaredhanson/passport-google-oauth
356-
[passport-google-oauthDOCUrl]: https://github.com/jaredhanson/passport-google-oauth/blob/master/README.md
357-
[passport-google-oauthNPMUrl]: https://www.npmjs.com/package/passport-google-oauth
358-
[passport-google-oauthNPMVersionImage]: https://img.shields.io/npm/v/passport-google-oauth.svg?style=flat
349+
[passport-google-oauth2GHUrl]: https://github.com/jaredhanson/passport-google-oauth2
350+
[passport-google-oauth2DOCUrl]: https://github.com/jaredhanson/passport-google-oauth2/blob/master/README.md
351+
[passport-google-oauth2NPMUrl]: https://www.npmjs.com/package/passport-google-oauth20
352+
[passport-google-oauth2NPMVersionImage]: https://img.shields.io/npm/v/passport-google-oauth20.svg?style=flat
359353

360354
[passport-imgurGHUrl]: https://github.com/mindfreakthemon/passport-imgur
361355
[passport-imgurDOCUrl]: https://github.com/mindfreakthemon/passport-imgur/blob/master/README.md

controllers/auth.js

-9
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ var isDbg = require('../libs/debug').isDbg;
99

1010
//--- Dependency inclusions
1111
var passport = require('passport');
12-
var jwt = require('jwt-simple');
1312
var url = require('url');
1413
var colors = require('ansi-colors');
1514

@@ -229,14 +228,6 @@ exports.callback = function (aReq, aRes, aNext) {
229228
verifyPassport(aId, strategy, username, aReq.session.user, aDone);
230229
};
231230
}
232-
} else if (strategy === 'google') { // OpenID to OAuth2 migration
233-
strategyInstance._verify =
234-
function(aAccessToken, aRefreshToken, aParams, aProfile, aDone) {
235-
var openIdId = jwt.decode(aParams.id_token, null, true).openid_id;
236-
var oAuthId = aProfile.id;
237-
238-
verifyPassport([openIdId, oAuthId], strategy, username, aReq.session.user, aDone);
239-
};
240231
} else {
241232
strategyInstance._verify =
242233
function (aToken, aRefreshOrSecretToken, aProfile, aDone) {

libs/passportLoader.js

+2-12
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ exports.strategyInstances = nil();
2222
// Notice it is general so it can load any passport strategy
2323
exports.loadPassport = function (aStrategy) {
2424
var requireStr = 'passport-' + aStrategy.name
25-
+ (aStrategy.name === 'google' ? '-oauth' : (aStrategy.name === 'gitlab' ? '2' : ''));
26-
var PassportStrategy = require(requireStr)[
27-
aStrategy.name === 'google' ? 'OAuth2Strategy' : 'Strategy'];
25+
+ (aStrategy.name === 'google' ? '-oauth20' : (aStrategy.name === 'gitlab' ? '2' : ''));
26+
var PassportStrategy = require(requireStr).Strategy;
2827
var instance = null;
2928
var authParams = null;
3029

@@ -53,15 +52,6 @@ exports.loadPassport = function (aStrategy) {
5352
);
5453
}
5554

56-
if (aStrategy.name === 'google') {
57-
authParams = instance.authorizationParams;
58-
instance.authorizationParams = function() {
59-
var val = authParams.apply(this, arguments);
60-
val['openid.realm'] = AUTH_CALLBACK_BASE_URL + '/';
61-
return val;
62-
};
63-
}
64-
6555
exports.strategyInstances[aStrategy.name] = instance;
6656
passport.use(instance);
6757
};

libs/passportVerify.js

+2-35
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,8 @@ var allStrategies = require('../controllers/strategies.json');
1919
exports.verify = function (aId, aStrategy, aUsername, aLoggedIn, aDone) {
2020
var shasum = crypto.createHash('sha256');
2121
var digest = null;
22-
var query = {};
23-
var ids = [];
2422

25-
if (aId instanceof Array) {
26-
ids = aId.map(function (aId) {
27-
var shasum = crypto.createHash('sha256');
28-
shasum.update(String(aId));
29-
return shasum.digest('hex');
30-
});
31-
query.auths = { '$in': ids };
32-
} else if (aStrategy === 'github') {
23+
if (aStrategy === 'github') {
3324
// We only keep plaintext ids for GH since that's all we need
3425
digest = aId;
3526
} else if (aStrategy === 'steam') {
@@ -44,14 +35,9 @@ exports.verify = function (aId, aStrategy, aUsername, aLoggedIn, aDone) {
4435
digest = shasum.digest('hex');
4536
}
4637

47-
if (!query.auths) {
48-
query.auths = digest;
49-
}
50-
51-
findDeadorAlive(User, query, true,
38+
findDeadorAlive(User, { 'auths': digest }, true,
5239
function (aAlive, aUser, aRemoved) {
5340
var pos = aUser ? aUser.auths.indexOf(digest) : -1;
54-
var openIdIdPos = -1;
5541
if (aRemoved) {
5642
aDone(null, false, 'User was removed');
5743

@@ -61,15 +47,6 @@ exports.verify = function (aId, aStrategy, aUsername, aLoggedIn, aDone) {
6147
}
6248
}
6349

64-
// Set up for OpenId to OAuth Migration
65-
if (!digest && ids.length > 0) {
66-
digest = ids[1];
67-
if (aUser) {
68-
pos = aUser.auths.indexOf(digest);
69-
openIdIdPos = aUser.auths.indexOf(ids[0]);
70-
}
71-
}
72-
7350
if (!aUser) {
7451
User.findOne({ 'name': aUsername }, function (aErr, aUser) {
7552
// WARNING: No err handling
@@ -122,16 +99,6 @@ exports.verify = function (aId, aStrategy, aUsername, aLoggedIn, aDone) {
12299
aUser.auths.push(digest);
123100

124101
aUser.markModified('strategies');
125-
aUser.markModified('auths');
126-
aUser.save(function (aErr, aUser) {
127-
aDone(aErr, aUser);
128-
return;
129-
});
130-
} else if (openIdIdPos > 0) {
131-
// The user was authenticated however...
132-
// Migrate from OpenID to OAuth
133-
aUser.auths[openIdIdPos] = digest;
134-
135102
aUser.markModified('auths');
136103
aUser.save(function (aErr, aUser) {
137104
aDone(aErr, aUser);

package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
"jquery": "3.3.1",
3131
"js-beautify": "1.9.0",
3232
"jsdom": "14.0.0",
33-
"jwt-simple": "0.5.5",
3433
"less-middleware": "3.1.0",
3534
"marked": "0.6.1",
3635
"media-type": "0.3.1",
@@ -47,7 +46,7 @@
4746
"passport-facebook": "3.0.0",
4847
"passport-github": "1.1.0",
4948
"passport-gitlab2": "5.0.0",
50-
"passport-google-oauth": "2.0.0",
49+
"passport-google-oauth20": "2.0.0",
5150
"passport-imgur": "0.0.3",
5251
"passport-reddit": "0.2.4",
5352
"passport-steam": "1.0.10",

0 commit comments

Comments
 (0)