Sign PSR-7 requests using OAuth1 when using them with HTTPlug clients.
Install the OAuth1 integration using Composer:
$ composer require xabbuh/oauth1-authentication:^1.0
-
Configure the request signer with your consumer key and secret:
use ApiClients\Tools\Psr7\Oauth1\Definition\ConsumerKey; use ApiClients\Tools\Psr7\Oauth1\Definition\ConsumerSecret; use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner; $requestSigner = new RequestSigner( new ConsumerKey('consumer_key'), new ConsumerSecret('consumer_secret') );
You can also optionally specify the hash algorithm to use. Read more about that in the api-clients/psr7-oauth1 documentation.
-
Set up the OAuth1 authentication passing the configured request signer together with your access token and token secret:
// ... use ApiClients\Tools\Psr7\Oauth1\Definition\AccessToken; use ApiClients\Tools\Psr7\Oauth1\Definition\TokenSecret; use Xabbuh\Http\Authentication\OAuth1; // ... $oauth = new OAuth1( $requestSigner, new AccessToken('access_token'), new TokenSecret('token_secret') );
-
Use the configured authentication with the authentication plugin:
// ... use Http\Discovery\HttpClientDiscovery; use Http\Client\Common\PluginClient; use Http\Client\Common\Plugin\AuthenticationPlugin; // ... $authenticationPlugin = new AuthenticationPlugin($oauth); $pluginClient = new PluginClient( HttpClientDiscovery::find(), [$authenticationPlugin] );