Add followRedirect client option to turn auto follow on or off

This commit is contained in:
Pieter Joost van de Sande 2013-05-05 23:04:10 +02:00
parent 04eb6fade3
commit d4143a6452

View File

@ -29,7 +29,8 @@ exports.OAuth= function(requestUrl, accessUrl, consumerKey, consumerSecret, vers
"Connection" : "close", "Connection" : "close",
"User-Agent" : "Node authentication"} "User-Agent" : "Node authentication"}
this._clientOptions= this._defaultClientOptions= {"requestTokenHttpMethod": "POST", this._clientOptions= this._defaultClientOptions= {"requestTokenHttpMethod": "POST",
"accessTokenHttpMethod": "POST"}; "accessTokenHttpMethod": "POST",
"followRedirects": true};
this._oauthParameterSeperator = ","; this._oauthParameterSeperator = ",";
}; };
@ -352,6 +353,7 @@ exports.OAuth.prototype._performSecureRequest= function( oauth_token, oauth_toke
request= this._createClient(parsedUrl.port, parsedUrl.hostname, method, path, headers); request= this._createClient(parsedUrl.port, parsedUrl.hostname, method, path, headers);
} }
var clientOptions = this._clientOptions;
if( callback ) { if( callback ) {
var data=""; var data="";
var self= this; var self= this;
@ -367,7 +369,7 @@ exports.OAuth.prototype._performSecureRequest= function( oauth_token, oauth_toke
callback(null, data, response); callback(null, data, response);
} else { } else {
// Follow 301 or 302 redirects with Location HTTP header // Follow 301 or 302 redirects with Location HTTP header
if((response.statusCode == 301 || response.statusCode == 302) && response.headers && response.headers.location) { if((response.statusCode == 301 || response.statusCode == 302) && clientOptions.followRedirects && response.headers && response.headers.location) {
self._performSecureRequest( oauth_token, oauth_token_secret, method, response.headers.location, extra_params, post_body, post_content_type, callback); self._performSecureRequest( oauth_token, oauth_token_secret, method, response.headers.location, extra_params, post_body, post_content_type, callback);
} }
else { else {