Update method parameters and names

This commit is contained in:
trogwar
2016-06-29 22:17:31 +03:00
parent 3691945391
commit 1fc50f236c

View File

@@ -2,10 +2,12 @@
namespace J4k\OAuth2\Client\Provider; namespace J4k\OAuth2\Client\Provider;
use League\OAuth2\Client\Entity\User; use GuzzleHttp\Exception\BadResponseException;
use League\OAuth2\Client\Token\AccessToken; use League\OAuth2\Client\Grant;
use League\OAuth2\Client\Provider\AbstractProvider; use League\OAuth2\Client\Provider\AbstractProvider;
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
use League\OAuth2\Client\Token\AccessToken;
use Psr\Http\Message\ResponseInterface;
class Vkontakte extends AbstractProvider class Vkontakte extends AbstractProvider
{ {
@@ -13,17 +15,15 @@ class Vkontakte extends AbstractProvider
public $uidKey = 'user_id'; public $uidKey = 'user_id';
public $responseType = 'json'; public $responseType = 'json';
public function urlAuthorize() public function getBaseAuthorizationUrl()
{ {
return 'https://oauth.vk.com/authorize'; return 'https://oauth.vk.com/authorize';
} }
public function getBaseAccessTokenUrl(array $params)
public function urlAccessToken()
{ {
return 'https://oauth.vk.com/access_token'; return 'https://oauth.vk.com/access_token';
} }
public function getAccessToken($grant = 'authorization_code', array $params = [])
public function getAccessToken($grant = 'authorization_code', $params = [])
{ {
if (is_string($grant)) { if (is_string($grant)) {
// PascalCase the grant. E.g: 'authorization_code' becomes 'AuthorizationCode' // PascalCase the grant. E.g: 'authorization_code' becomes 'AuthorizationCode'
@@ -33,7 +33,7 @@ class Vkontakte extends AbstractProvider
throw new \InvalidArgumentException('Unknown grant "'.$grant.'"'); throw new \InvalidArgumentException('Unknown grant "'.$grant.'"');
} }
$grant = new $grant(); $grant = new $grant();
} elseif (! $grant instanceof GrantInterface) { } elseif (! $grant instanceof Grant\AbstractGrant) {
$message = get_class($grant).' is not an instance of League\OAuth2\Client\Grant\GrantInterface'; $message = get_class($grant).' is not an instance of League\OAuth2\Client\Grant\GrantInterface';
throw new \InvalidArgumentException($message); throw new \InvalidArgumentException($message);
} }
@@ -45,23 +45,23 @@ class Vkontakte extends AbstractProvider
'grant_type' => $grant, 'grant_type' => $grant,
]; ];
$requestParams = $grant->prepRequestParams($defaultParams, $params); $requestParams = $grant->prepareRequestParameters($defaultParams, $params);
try { try {
switch (strtoupper($this->method)) { switch (strtoupper($this->getAccessTokenMethod())) {
case 'GET': case 'GET':
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
// No providers included with this library use get but 3rd parties may // No providers included with this library use get but 3rd parties may
$client = $this->getHttpClient(); $client = $this->getHttpClient();
$client->setBaseUrl($this->urlAccessToken() . '?' . $this->httpBuildQuery($requestParams, '', '&')); $getUrl = $this->getAccessTokenUrl($requestParams);
$request = $client->get(null, null, $requestParams)->send(); $request = $client->request('GET', $getUrl, $requestParams);
$response = $request->getBody(); $response = $request->getBody();
break; break;
// @codeCoverageIgnoreEnd // @codeCoverageIgnoreEnd
case 'POST': case 'POST':
$client = $this->getHttpClient(); $client = $this->getHttpClient();
$client->setBaseUrl($this->urlAccessToken()); $postUrl = $this->getAccessTokenUrl($requestParams);
$request = $client->post(null, null, $requestParams)->send(); $request = $client->request('POST', $postUrl, $requestParams);
$response = $request->getBody(); $response = $request->getBody();
break; break;
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
@@ -91,13 +91,13 @@ class Vkontakte extends AbstractProvider
if (isset($result['error']) && ! empty($result['error'])) { if (isset($result['error']) && ! empty($result['error'])) {
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
throw new IDPException($result); throw new IdentityProviderException($result['error_description'], $response->getStatusCode(), $responseBody);
// @codeCoverageIgnoreEnd // @codeCoverageIgnoreEnd
} }
$result = $this->prepareAccessTokenResult($result); $result = $this->prepareAccessTokenResponse($result);
$accessToken = $grant->handleResponse($result); $accessToken = $grant->prepareRequestParameters($result, []);
// Add email from response // Add email from response
if (!empty($result['email'])) { if (!empty($result['email'])) {
@@ -105,8 +105,7 @@ class Vkontakte extends AbstractProvider
} }
return $accessToken; return $accessToken;
} }
public function getResourceOwnerDetailsUrl(AccessToken $token)
public function urlUserDetails(AccessToken $token)
{ {
$fields = ['email', $fields = ['email',
'nickname', 'nickname',
@@ -139,7 +138,7 @@ class Vkontakte extends AbstractProvider
.implode(",", $fields)."&access_token={$token}"; .implode(",", $fields)."&access_token={$token}";
} }
public function userDetails($response, AccessToken $token) protected function createResourceOwner(array $response, AccessToken $token)
{ {
$response = $response->response[0]; $response = $response->response[0];
@@ -170,12 +169,10 @@ class Vkontakte extends AbstractProvider
return $response->uid; return $response->uid;
} }
public function userEmail($response, AccessToken $token) public function userEmail($response, AccessToken $token)
{ {
return (isset($token->email)) ? $token->email : null; return (isset($token->email)) ? $token->email : null;
} }
public function userScreenName($response, AccessToken $token) public function userScreenName($response, AccessToken $token)
{ {
$response = $response->response[0]; $response = $response->response[0];