hughbertd/oauth2-unsplash
OAuth2 client provider for Unsplash built on league/oauth2-client. Install via Composer and use the Unsplash provider to run the Authorization Code flow, fetch access tokens, and retrieve the authenticated user (resource owner) for API access.
Provides Unsplash OAuth 2.0 support as an implementation of PHP League's OAuth 2.0 Client
To install, use composer:
composer require hughbertd/oauth2-unsplash
Usage is the same as The League's OAuth client, using \CrewLabs\OAuth2\Client\Provider\Unsplash as the provider.
<?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;
}
$ ./vendor/bin/phpunit
How can I help you explore Laravel packages today?