Skip to content

Commit

Permalink
Merge 3f0044a into b3d886f
Browse files Browse the repository at this point in the history
  • Loading branch information
VulcanianRuby committed Nov 19, 2015
2 parents b3d886f + 3f0044a commit 9319ebd
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .jshintrc
@@ -1,7 +1,7 @@
{
"node": true,
"bitwise": true,
"camelcase": true,
"camelcase": false,
"curly": true,
"forin": true,
"immed": true,
Expand Down
1 change: 0 additions & 1 deletion .travis.yml
Expand Up @@ -2,7 +2,6 @@ language: "node_js"
node_js:
- "0.12"
- "0.10"
- "0.8"
- "iojs"

before_install:
Expand Down
51 changes: 51 additions & 0 deletions lib/strategy.js
Expand Up @@ -201,6 +201,57 @@ OAuth2Strategy.prototype.authenticate = function(req, options) {
});
}
);
} else if (req.query && req.query.grant_type) {
switch ( req.query.grant_type ) {
case 'refresh_token':
if ( !req.query.refresh_token ) {
return this.fail({ message: 'Unable to refresh token: Missing refresh_token.' }, 403);
}

var params = this.tokenParams(options);
params.grant_type = req.query.grant_type;
params.scope = req.query.scope;

this._oauth2.getOAuthAccessToken(req.query.refresh_token, params,
function(err, accessToken, refreshToken, params) {
if (err) { return self.error(self._createOAuthError('Failed to obtain access token', err)); }

self._loadUserProfile(accessToken, function(err, profile) {
if (err) { return self.error(err); }

function verified(err, user, info) {
if (err) { return self.error(err); }
if (!user) { return self.fail(info); }
self.success(user, info);
}

try {
if (self._passReqToCallback) {
var arity = self._verify.length;
if (arity == 6) {
self._verify(req, accessToken, refreshToken, params, profile, verified);
} else { // arity == 5
self._verify(req, accessToken, refreshToken, profile, verified);
}
} else {
var arity = self._verify.length;
if (arity == 5) {
self._verify(accessToken, refreshToken, params, profile, verified);
} else { // arity == 4
self._verify(accessToken, refreshToken, profile, verified);
}
}
} catch (ex) {
return self.error(ex);
}
});
}
);

break;
default:
return this.fail({ message: 'Unsupported authorization request state.' }, 403);
}
} else {
var params = this.authorizationParams(options);
params.response_type = 'code';
Expand Down

0 comments on commit 9319ebd

Please sign in to comment.