var OAuthGitHubHandler = Class.create(); OAuthGitHubHandler.prototype = Object.extendsObject(OAuthUtil, { // Override postprocessAccessToken method. GitHub returns a urlencoded // body, so we need to break this apart and extract the values. postprocessAccessToken: function(accessTokenResponse) { var contentType = accessTokenResponse.getContentType(); var contentBody = accessTokenResponse.getBody(); var paramMap = accessTokenResponse.getparameters(); var params = contentBody.split('&'); var parts; params.forEach(function(param) { parts = param.split('='); paramMap.put(parts[0], parts[1]); }); // GitHub tokens do not expire, hardcode expiration to something far away paramMap.put('expires_in', '365246060'); }, type: 'OAuthGitHubHandler' });