From 188be5bddd4e4614ef4300784d9f617f0dc21491 Mon Sep 17 00:00:00 2001 From: Geoff Date: Wed, 17 Dec 2014 21:15:34 -0600 Subject: [PATCH 1/3] update google scopes and endpoint to remove deprecated values --- src/Provider/Google.php | 21 +++++++++++---------- test/src/Provider/GoogleTest.php | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/Provider/Google.php b/src/Provider/Google.php index 5578f2b1..cd058d91 100644 --- a/src/Provider/Google.php +++ b/src/Provider/Google.php @@ -9,8 +9,8 @@ class Google extends AbstractProvider public $scopeSeparator = ' '; public $scopes = [ - 'https://www.googleapis.com/auth/userinfo.profile', - 'https://www.googleapis.com/auth/userinfo.email', + 'profile', + 'email', ]; /** @@ -41,7 +41,7 @@ public function urlAccessToken() public function urlUserDetails(\League\OAuth2\Client\Token\AccessToken $token) { - return 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token='.$token; + return 'https://www.googleapis.com/plus/v1/people/me?fields=name(familyName%2CgivenName)%2CdisplayName%2Cemails%2Fvalue%2Cimage%2Furl&alt=json&access_token='.$token; } public function userDetails($response, \League\OAuth2\Client\Token\AccessToken $token) @@ -50,14 +50,15 @@ public function userDetails($response, \League\OAuth2\Client\Token\AccessToken $ $user = new User(); - $imageUrl = (isset($response['picture'])) ? $response['picture'] : null; + $imageUrl = (isset($response['image']) && $response['image']->url) ? $response['image']->url : null; + $email = (isset($response['emails']) && count($response['emails']) && $response['emails'][0]->value)? $response['emails'][0]->value : null; $user->exchangeArray([ 'uid' => $response['id'], - 'name' => $response['name'], - 'firstname' => $response['given_name'], - 'lastName' => $response['family_name'], - 'email' => $response['email'], + 'name' => $response['displayName'], + 'firstname' => $response['name']->givenName, + 'lastName' => $response['name']->familyName, + 'email' => $email, 'imageUrl' => $imageUrl, ]); @@ -71,12 +72,12 @@ public function userUid($response, \League\OAuth2\Client\Token\AccessToken $toke public function userEmail($response, \League\OAuth2\Client\Token\AccessToken $token) { - return isset($response->email) && $response->email ? $response->email : null; + return ($response->emails && count($response->emails) && $response->emails[0]->value) ? $response->emails[0]->value : null; } public function userScreenName($response, \League\OAuth2\Client\Token\AccessToken $token) { - return [$response->given_name, $response->family_name]; + return [$response->name->givenName, $response->name->familyName]; } public function getAuthorizationUrl($options = array()) diff --git a/test/src/Provider/GoogleTest.php b/test/src/Provider/GoogleTest.php index bfb08102..235b4266 100644 --- a/test/src/Provider/GoogleTest.php +++ b/test/src/Provider/GoogleTest.php @@ -71,7 +71,7 @@ public function testGetAccessToken() public function testScopes() { - $this->assertEquals(['https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.email'], $this->provider->getScopes()); + $this->assertEquals(['profile', 'email'], $this->provider->getScopes()); } public function testUserData() @@ -80,7 +80,7 @@ public function testUserData() $postResponse->shouldReceive('getBody')->times(1)->andReturn('{"access_token": "mock_access_token", "expires": 3600, "refresh_token": "mock_refresh_token", "uid": 1}'); $getResponse = m::mock('Guzzle\Http\Message\Response'); - $getResponse->shouldReceive('getBody')->times(4)->andReturn('{"id": 12345, "name": "mock_name", "given_name": "mock_first_name", "family_name": "mock_last_name", "email": "mock_email"}'); + $getResponse->shouldReceive('getBody')->times(4)->andReturn('{"emails": [{"value": "mock_email"}],"id": "12345","displayName": "mock_name","name": {"familyName": "mock_last_name","givenName": "mock_first_name"},"image": {"url": "mock_image_url"}}'); $client = m::mock('Guzzle\Service\Client'); $client->shouldReceive('setBaseUrl')->times(5); From 04d64d76b50a0012ea1c4e2bf799d10b42cb614a Mon Sep 17 00:00:00 2001 From: Geoff Date: Wed, 17 Dec 2014 21:27:33 -0600 Subject: [PATCH 2/3] fixed long lines --- src/Provider/Google.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Provider/Google.php b/src/Provider/Google.php index cd058d91..225e5081 100644 --- a/src/Provider/Google.php +++ b/src/Provider/Google.php @@ -41,7 +41,10 @@ public function urlAccessToken() public function urlUserDetails(\League\OAuth2\Client\Token\AccessToken $token) { - return 'https://www.googleapis.com/plus/v1/people/me?fields=name(familyName%2CgivenName)%2CdisplayName%2Cemails%2Fvalue%2Cimage%2Furl&alt=json&access_token='.$token; + return + 'https://www.googleapis.com/plus/v1/people/me?'. + 'fields=name(familyName%2CgivenName)%2CdisplayName%2C'. + 'emails%2Fvalue%2Cimage%2Furl&alt=json&access_token='.$token; } public function userDetails($response, \League\OAuth2\Client\Token\AccessToken $token) @@ -50,8 +53,12 @@ public function userDetails($response, \League\OAuth2\Client\Token\AccessToken $ $user = new User(); - $imageUrl = (isset($response['image']) && $response['image']->url) ? $response['image']->url : null; - $email = (isset($response['emails']) && count($response['emails']) && $response['emails'][0]->value)? $response['emails'][0]->value : null; + $imageUrl = (isset($response['image']) && + $response['image']->url) ? $response['image']->url : null; + $email = + (isset($response['emails']) && + count($response['emails']) && + $response['emails'][0]->value)? $response['emails'][0]->value : null; $user->exchangeArray([ 'uid' => $response['id'], @@ -72,7 +79,9 @@ public function userUid($response, \League\OAuth2\Client\Token\AccessToken $toke public function userEmail($response, \League\OAuth2\Client\Token\AccessToken $token) { - return ($response->emails && count($response->emails) && $response->emails[0]->value) ? $response->emails[0]->value : null; + return ($response->emails && + count($response->emails) && + $response->emails[0]->value) ? $response->emails[0]->value : null; } public function userScreenName($response, \League\OAuth2\Client\Token\AccessToken $token) From 5952f5d8f56904ab7a19519c5add6cca1f09304b Mon Sep 17 00:00:00 2001 From: Geoff Lancaster Date: Sun, 21 Dec 2014 23:02:09 -0600 Subject: [PATCH 3/3] updated spaces --- src/Provider/Google.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Provider/Google.php b/src/Provider/Google.php index 225e5081..30f53923 100644 --- a/src/Provider/Google.php +++ b/src/Provider/Google.php @@ -42,9 +42,9 @@ public function urlAccessToken() public function urlUserDetails(\League\OAuth2\Client\Token\AccessToken $token) { return - 'https://www.googleapis.com/plus/v1/people/me?'. - 'fields=name(familyName%2CgivenName)%2CdisplayName%2C'. - 'emails%2Fvalue%2Cimage%2Furl&alt=json&access_token='.$token; + 'https://www.googleapis.com/plus/v1/people/me?'. + 'fields=name(familyName%2CgivenName)%2CdisplayName%2C'. + 'emails%2Fvalue%2Cimage%2Furl&alt=json&access_token='.$token; } public function userDetails($response, \League\OAuth2\Client\Token\AccessToken $token) @@ -54,11 +54,11 @@ public function userDetails($response, \League\OAuth2\Client\Token\AccessToken $ $user = new User(); $imageUrl = (isset($response['image']) && - $response['image']->url) ? $response['image']->url : null; + $response['image']->url) ? $response['image']->url : null; $email = - (isset($response['emails']) && - count($response['emails']) && - $response['emails'][0]->value)? $response['emails'][0]->value : null; + (isset($response['emails']) && + count($response['emails']) && + $response['emails'][0]->value)? $response['emails'][0]->value : null; $user->exchangeArray([ 'uid' => $response['id'], @@ -80,8 +80,8 @@ public function userUid($response, \League\OAuth2\Client\Token\AccessToken $toke public function userEmail($response, \League\OAuth2\Client\Token\AccessToken $token) { return ($response->emails && - count($response->emails) && - $response->emails[0]->value) ? $response->emails[0]->value : null; + count($response->emails) && + $response->emails[0]->value) ? $response->emails[0]->value : null; } public function userScreenName($response, \League\OAuth2\Client\Token\AccessToken $token)