This package provides Kangaroo Rewards OAuth 2.0 support for the PHP League's OAuth 2.0 Client.
This package is compliant with PSR-1, PSR-2, PSR-4, and PSR-7. If you notice compliance oversights, please send a patch via pull request.
The following versions of PHP are supported.
- PHP 5.6
- PHP 7.1
- PHP 7.2
- PHP 7.3
- PHP 7.4
- PHP 8.0
Add the following to your composer.json
file.
{
"require": {
"kangaroorewards/oauth2-kangaroo-rewards": "~2.0"
}
}
session_start();
$provider = new KangarooRewards\OAuth2\Client\Provider\Kangaroo([
'clientId' => CLIENT_ID,
'clientSecret' => CLIENT_SECRET,
'redirectUri' => REDIRECT_URI,
]);
if (!isset($_GET['code'])) {
// If we don't have an authorization code then get one
$authUrl = $provider->getAuthorizationUrl([]);
$_SESSION['oauth2state'] = $provider->getState();
echo '<a href="'.$authUrl.'">Log in with Kangaroo Rewards!</a>';
exit;
// Check given state against previously stored one to mitigate CSRF attack
} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {
unset($_SESSION['oauth2state']);
echo 'Invalid state.';
exit;
}
// Try to get an access token (using the authorization code grant)
$token = $provider->getAccessToken('authorization_code', [
'code' => $_GET['code']
]);
try {
// We got an access token, let's make some requests
$resourceOwner = $kangaroo->getResourceOwner($token);
$http = new GuzzleHttp\Client;
$response = $http->get('https://api.kangaroorewards.com/customers', [
'headers' => [
'User-Agent' => '{Client Name}',
'Content-Type' => 'application/json',
'Accept' => 'application/vnd.kangaroorewards.api.v1+json;',
'Authorization' => 'Bearer ' . $token->getToken(),
]
]);
$r = json_decode((string) $response->getBody(), true);
echo '<pre>';
var_export($resourceOwner->toArray());
var_export($r);
echo '</pre>';
} catch (Exception $e) {
exit($e->getMessage());
}
echo '<pre>';
// Use this to interact with the API on the client behalf
var_dump($token->getToken());
echo '</pre>';
$ ./vendor/bin/phpunit
Style checks can be run with:
./vendor/bin/phpcbf src --standard=psr12 -p
./vendor/bin/phpcs src --standard=psr12 -sp
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.