Update method parameters and names
This commit is contained in:
@@ -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];
|
||||||
|
|||||||
Reference in New Issue
Block a user