Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 101 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,114 @@ use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha1Signature;

// Pass it a PSR-7 request and it returns a signed PSR7 request you can use in any PSR7 capable HTTP client.
// By default a HMAC-SHA1 signature will be used, this can be changed, see examples below how to do that.
$request = (new RequestSigner(
new Definition\ConsumerKey('consumer_key'),
new Definition\ConsumerSecret('consumer_secret')
))->withAccessToken(
new Definition\AccessToken('token_key'),
new Definition\TokenSecret('token_secret')
)->sign($request);
```

# Suppported signatures

All supported signatures are HMAC signatures.

## MD5

Signs request with `HMAC-MD5`. Usage:

```php
<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacMd5Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
new Definition\ConsumerKey('consumer_key'),
$consumerSecret,
new HmacMd5Signature($consumerSecret)
);
```

## SHA1

Signs request using `HMAC-SHA1`. Usage:

```php
<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha1Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
new Definition\ConsumerKey('consumer_key'),
$consumerSecret,
new HmacSha1Signature( // Optional, but allows for other than HMAC SHA1 signatures
$consumerSecret
)
new HmacSha1Signature($consumerSecret)
);
```

// Pass it a PSR-7 request and it returns a signed PSR7 request you can use in any PSR7 capable HTTP client.
$request = $requestSigner->withAccessToken(
new Definition\AccessToken('token_key'),
new Definition\TokenSecret('token_secret')
)->sign($request);
## SHA256

Signs request using `HMAC-SHA256`. Usage:

```php
<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha256Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
new Definition\ConsumerKey('consumer_key'),
$consumerSecret,
new HmacSha256Signature($consumerSecret)
);
```

## SHA384

Signs request using `HMAC-SHA384`. Usage:

```php
<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha384Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
new Definition\ConsumerKey('consumer_key'),
$consumerSecret,
new HmacSha384Signature($consumerSecret)
);
```

## SHA512

Signs request using `HMAC-SHA512`. Usage:

```php
<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha512Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
new Definition\ConsumerKey('consumer_key'),
$consumerSecret,
new HmacSha512Signature($consumerSecret)
);
```

# Contributing
Expand Down