/** * This method is called automatically when the OAuth2 server returns a response containing user details. * The method should process the response an return and instance of OAuth2User. * * @param array $result OAuth2 server response. * * @return OAuth2User * @throws OAuth2Exception */ protected function processUserDetails($result) { $result = self::arr($result['result']); if ($result->keyExists('error')) { throw new OAuth2Exception($result->key('error')); } $user = new OAuth2User($result->key('given_name'), $result->key('email', '', true)); $user->setProfileId($result->key('id', '', true)); $user->setFirstName($result->key('given_name', '', true)); $user->setLastName($result->key('family_name', '', true)); $user->setProfileUrl($result->key('link', '', true)); $user->setAvatarUrl($result->key('picture', '', true)); $user->setGender($result->key('gender', '', true)); $user->setServiceName('google'); return $user; }
/** * @param OAuth2User $u * * @dataProvider dataProvider */ public function testSetGetServiceName($u) { $service = 'facebook'; $u->setServiceName($service); $this->assertSame($service, $u->getServiceName()); $this->assertSame($service, $u->serviceName); }
/** * This method is called automatically when the OAuth2 server returns a response containing user details. * The method should process the response an return and instance of OAuth2User. * * @param array $result OAuth2 server response. * * @return OAuth2User * @throws OAuth2Exception */ protected function processUserDetails($result) { $result = self::arr($result['result']); if ($result->keyExists('status') && $result->key('status') != 200) { throw new OAuth2Exception($result->key('message')); } $user = new OAuth2User($result->key('firstName', '', true), $result->key('emailAddress', '', true)); $user->setProfileId($result->key('id', '', true)); $user->setFirstName($result->key('firstName', '', true)); $user->setLastName($result->key('lastName', '', true)); $user->setProfileUrl($result->key('publicProfileUrl', '', true)); $user->setAvatarUrl($result->key('pictureUrl', '', true)); $user->setServiceName('linkedin'); return $user; }
/** * This method is called automatically when the OAuth2 server returns a response containing user details. * The method should process the response an return and instance of OAuth2User. * * @param array $result OAuth2 server response. * * @return OAuth2User * @throws \Webiny\Component\OAuth2\OAuth2Exception */ public function processUserDetails($result) { $result = $this->arr($result['result']); if ($result->keyExists('error')) { throw new OAuth2Exception($result->keyNested('error.message')); } $user = new OAuth2User($result->key('username', '', true), $result->key('email', '', true)); $user->setProfileId($result->key('id', '', true)); $user->setFirstName($result->key('first_name', '', true)); $user->setLastName($result->key('last_name', '', true)); $user->setProfileUrl($result->key('link', '', true)); $user->setAvatarUrl('http://graph.facebook.com/' . $user->profileId . '/picture?width=160&height=160'); $user->setLastUpdateTime(strtotime($result->key('updated_time', '', true))); $user->setGender($result->key('gender', '', true)); $user->setServiceName('facebook'); return $user; }