hughbertd / oauth2-unsplash
Unsplash OAuth 2.0 Client Provider for The PHP League OAuth2-Client
Installs: 1 283 743
Dependents: 4
Suggesters: 0
Security: 0
Stars: 8
Watchers: 1
Forks: 1
Open Issues: 1
Requires
- php: >=5.6.0
- league/oauth2-client: >=1.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-12-21 04:12:49 UTC
README
Provides Unsplash OAuth 2.0 support as an implementation of PHP League's OAuth 2.0 Client
Installation
To install, use composer:
composer require hughbertd/oauth2-unsplash
Usage
Usage is the same as The League's OAuth client, using \CrewLabs\OAuth2\Client\Provider\Unsplash
as the provider.
Authorization Code Flow
<?php require_once('./vendor/autoload.php'); session_start(); $provider = new \Unsplash\OAuth2\Client\Provider\Unsplash([ 'clientId' => '{clientId}', 'clientSecret' => '{clientSecret}', 'redirectUri' => 'http://example.com', ]); if (!isset($_GET['code'])) { // If we don't have an authorization code then get one $authUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authUrl); exit; } if (isset($_GET['code']) && !isset($_SESSION['token'])) { try { // Try to get an access token (using the authorization code grant) $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); } catch (Exception $e) { print($e->getMessage()); exit; } // Use this to interact with an API on the users behalf $_SESSION['token'] = $token->getToken(); } if (isset($_SESSION['token'])) { $user = $provider->getResourceOwner($_SESSION['token']); printf('Hello %s!', $user->getName()); return; }
Testing
$ ./vendor/bin/phpunit