autowp / oauth2-vk
VK OAuth 2.0 Client Provider for The PHP League OAuth2-Client
1.0.2
2016-06-22 09:25 UTC
Requires
- php: >=5.3.0
- league/oauth2-client: ~1.0
Requires (Dev)
- phpunit/phpunit: ~4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
VK Provider for OAuth 2.0 Client
This package provides VK OAuth 2.0 support for the PHP League's OAuth 2.0 Client.
This package is compliant with PSR-1, PSR-2 and PSR-4. If you notice compliance oversights, please send a patch via pull request.
Requirements
The following versions of PHP are supported.
- PHP 5.5
- PHP 5.6
- PHP 7.0
- HHVM
Installation
To install, use composer:
composer require autowp/oauth2-vk
Usage
Authorization Code Flow
$provider = new Autowp\OAuth2\Client\Provider\Vk([ 'clientId' => '{vk-app-id}', 'clientSecret' => '{vk-app-secret}', 'redirectUri' => 'https://example.com/callback-url', 'display' => 'page', 'response_type' => 'code' ]); if (!empty($_GET['error'])) { // Got an error, probably user denied access exit('Got error: ' . $_GET['error']); } elseif (empty($_GET['code'])) { // If we don't have an authorization code then get one $authUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authUrl); exit; } elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) { // State is invalid, possible CSRF attack in progress unset($_SESSION['oauth2state']); exit('Invalid state'); } else { // Try to get an access token (using the authorization code grant) $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); // Optional: Now you have a token you can look up a users profile data try { // We got an access token, let's now get the owner details $ownerDetails = $provider->getResourceOwner($token); // Use these details to create a new profile printf('Hello %s!', $ownerDetails->getFirstName()); } catch (Exception $e) { // Failed to get user details exit('Something went wrong: ' . $e->getMessage()); } // Use this to interact with an API on the users behalf echo $token->accessToken; // Use this to get a new access token if the old one expires echo $token->refreshToken; // Number of seconds until the access token will expire, and need refreshing echo $token->expires; }
License
The MIT License (MIT). Please see License File for more information.