fix a bug in google-api-php-client: generates an auth url that doesn't work

Submitted upstream as https://github.com/google/google-api-php-client/issues/76
Google's php lib has a function to generate a URL for OAuth2 authentication.
It uses http_build_query() to generate the query part of the URL, and in PHP
5.3 or later, this uses an encoded ampersand - & - as the query separator,
not a raw one. However, Google's OAuth server apparently can't handle encoded
ampersands as separators and so it fails.

This patch explicitly sets a raw ampersand as the separator. If Google decides
to fix their OAuth server instead of merging this patch into google-api-php-
client, we can drop this patch as soon as that happens.
This commit is contained in:
Adam Williamson 2014-01-31 10:59:23 -08:00
parent d96c06f1a3
commit 18707f5aba
1 changed files with 1 additions and 1 deletions

View File

@ -161,7 +161,7 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract
$params['state'] = $this->state;
}
return self::OAUTH2_AUTH_URL . "?" . http_build_query($params);
return self::OAUTH2_AUTH_URL . "?" . http_build_query($params, '', '&');
}
/**