99designs / http-signatures-guzzlehttp
Sign and verify HTTP messages with Guzzle 6
Installs: 198 887
Dependents: 5
Suggesters: 0
Security: 0
Stars: 12
Watchers: 66
Forks: 10
Open Issues: 3
Requires
- php: >=5.5.0
- 99designs/http-signatures: >=3.0.0 <5.0.0
- guzzlehttp/guzzle: >=6.0 <7.0.0
Requires (Dev)
- phpunit/phpunit: ~4.1
This package is not auto-updated.
Last update: 2024-11-08 13:09:03 UTC
README
Guzzle 6 support for 99designs http-signatures library
Adds 99designs/http-signatures support to Guzzle 6.
Older Guzzle Versions
For Guzzle 4 & 5 use the v1.x
release of this repo.
For Guzzle 3 see the 99designs/http-signatures-guzzle repo.
Signing with Guzzle 6
This library includes support for automatically signing Guzzle requests using Middleware.
You can use GuzzleHttpSignatures::defaultHandlerFromContext
to easily create the default Guzzle handler with the
middleware added to sign every request.
use GuzzleHttp\Client; use HttpSignatures\Context; use HttpSignatures\GuzzleHttpSignatures; require __DIR__ . "/../vendor/autoload.php"; $context = new Context([ 'keys' => ['examplekey' => 'secret-key-here'], 'algorithm' => 'hmac-sha256', 'headers' => ['(request-target)', 'date'], ]); $handlerStack = GuzzleHttpSignatures::defaultHandlerFromContext($context); $client = new Client(['handler' => $handlerStack]); // The below will now send a signed request to: http://example.org/path?query=123 $response = $client->get("http://www.example.com/path?query=123", ['headers' => ['date' => 'today']]);
Or if you're creating a custom HandlerStack
you can add the Middleware yourself:
<?php use GuzzleHttp\Client; use GuzzleHttp\Handler\CurlHandler; use GuzzleHttp\HandlerStack; use GuzzleHttp\Middleware; use HttpSignatures\Context; use HttpSignatures\GuzzleHttpSignatures; require __DIR__ . "/../vendor/autoload.php"; $context = new Context([ 'keys' => ['examplekey' => 'secret-key-here'], 'algorithm' => 'hmac-sha256', 'headers' => ['(request-target)', 'date'], ]); $handlerStack = new HandlerStack(); $stack->setHandler(new CurlHandler()); $stack->push(GuzzleHttpSignatures::middlewareFromContext($this->context)); $stack->push(Middleware::history($this->history)); $client = new Client(['handler' => $handlerStack]); // The below will now send a signed request to: http://example.org/path?query=123 $response = $client->get("http://www.example.com/path?query=123", ['headers' => ['date' => 'today']]);
Contributing
Pull Requests are welcome.