olsgreen / oauth2-adobe-sign
Adobe Sign OAuth 2.0 Client Provider for The PHP League OAuth2-Client
Installs: 5 175
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: ^7.3 || ^8.0
- league/oauth2-client: ^2.0
Requires (Dev)
- mockery/mockery: ^1.3
- phpunit/phpunit: ^7.5.20 || ^9.3
This package is auto-updated.
Last update: 2024-10-23 01:27:09 UTC
README
This package provides Adobe Sign OAuth 2.0 support for the PHP League's OAuth 2.0 Client.
Looking for an AdobeSign API client? See olsgreen/adobe-sign-api.
This package requires PHP >= 7.3.
Installation
To install, use composer:
composer require olsgreen/oauth2-adobe-sign
Usage
Usage is the same as The League's OAuth client, using \Olsgreen\OAuth2\Client\Provider\AdobeSign
as the provider.
Authorization Code Flow
$provider = new Olsgreen\OAuth2\Client\Provider\AdobeSign([ 'clientId' => '{adobe-client-id}', 'clientSecret' => '{adobe-client-secret}', 'redirectUri' => 'https://example.com/callback-url', 'dataCenter' => 'eu2' ]); if (!isset($_GET['code'])) { $authorizationOptions = [ // See documentation relating to scopes: // https://opensource.adobe.com/acrobat-sign/developer_guide/helloworld.html#configure-scopes 'scope' => [ 'agreement_read', 'agreement_write', 'agreement_send', 'webhook_read', 'webhook_write', 'webhook_retention' ] ]; // If we don't have an authorization code then get one $authUrl = $provider->getAuthorizationUrl($authorizationOptions); $_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'] ]); // Use this to interact with an API on the users behalf echo $token->getToken(); }
Data Centers
The data center should match that of the account you are trying to access, so best store the datacenter with the access token. The current datacenters are:
- na1 = North America 1
- na2 = North America 2
- eu1 = EU 1
- eu2 = EU 2
- au1 = Australia 1
- jp1 = Japan 1
Provider Quirks
Adobe do not provide an endpoint to retrieve the current user, so getResourceOwnerDetailsUrl()
, createResourceOwner()
& getResourceOwner()
will throw NotImplmenetedException
.
Testing
$ ./vendor/bin/phpunit
Credits
Originally forked from kevinm/oauth2-adobe-sign.
License
The MIT License (MIT). Please see License File for more information.