https://github.com/vormkracht10/oauth2-genesys
Genesys OAuth 2.0 support for the PHP League's OAuth 2.0 Client
https://github.com/vormkracht10/oauth2-genesys
genesys genesys-cloud oauth2 oauth2-client php php-league phpleague
Last synced: 3 months ago
JSON representation
Genesys OAuth 2.0 support for the PHP League's OAuth 2.0 Client
- Host: GitHub
- URL: https://github.com/vormkracht10/oauth2-genesys
- Owner: vormkracht10
- License: mit
- Created: 2022-10-10T10:53:10.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-29T10:08:10.000Z (about 1 year ago)
- Last Synced: 2025-01-10T22:38:53.455Z (5 months ago)
- Topics: genesys, genesys-cloud, oauth2, oauth2-client, php, php-league, phpleague
- Language: PHP
- Homepage:
- Size: 40 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Genesys Provider for OAauth 2.0 Client

[](https://github.com/vormkracht10/oauth2-genesys/actions/workflows/run-tests.yml)

[](https://packagist.org/packages/vormkracht10/oauth2-genesys)
[](https://packagist.org/packages/vormkracht10/oauth2-genesys)This package provides Genesys OAuth 2.0 support for the PHP League's OAuth 2.0 Client.
## Installation
You can install the package via composer:
```bash
composer require vormkracht10/oauth2-genesys
```## Usage
Usage is the same as The League's OAuth client, using `\Vormkracht10\OAuth2Genesys\Provider\Genesys` as the provider.
### Defining the region
Because Genesys uses different endpoints for different regions, you need to define the region you want to use. This can be done by passing the region as parameter to the constructor. By default the region is set to `us-east-1`. All regions and their endpoints can be found in the Genesys API documentation [here](https://developer.genesys.cloud/platform/api/).
### Authorization Code Flow
```php
require_once('./vendor/autoload.php');
session_start();$provider = new \Vormkracht10\OAuth2Genesys\Provider\Genesys([
'region' => 'us-west-2',
'clientId' => '{genesys-client-id}',
'clientSecret' => '{genesys-client-secret}',
'redirectUri' => 'https://example.com/callback-url',
]);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;// Check given state against previously stored one to mitigate CSRF attack
} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {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 user's details
$user = $provider->getResourceOwner($token);} catch (Exception $e) {
// Failed to get user details
exit('Oh dear...');
}// Use this to interact with an API on the users behalf
echo $token->getToken();
}
```## Testing
```bash
composer test
```## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details.
## Security Vulnerabilities
Please review [our security policy](../../security/policy) on how to report security vulnerabilities.
## Credits
- [Bas van Dinther](https://github.com/vormkracht10)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.