Originally developed by jeskew, this
extremely simple Plugin provides middleware you can place on your Guzzle client to automagically
sign your requests., (*1)
Usage
First, install with Composer:, (*2)
composer require complex-media/guzzle-hawk
Then, use it in code., (*3)
use ComplexMedia\Guzzle\Plugin\Hawk;
use GuzzleHttp\Client as Guzzle;
$client = new Guzzle();
$signer = new Hawk($key, $secret, $algorithm, $offset);
$client->getEmitter()->attach($signer);
$response = $client->get($URL);
$algorithm will default to 'sha256', but you can set it to whatever your system supports.
$offset adds a clock skew to synchronize with your server, and defaults to 0. If you
get a 401 from your server, you can adjust several properties on the signer and try again
immediately:, (*4)
$signer->key = $new_key
$signer->secret = $new_secret
$signer->algorithm = $new_algorithm
$signer->offset = $new_offset
$response = $client->get($URL);
Contributing
Yes, (*5)
License
MIT License applies., (*6)