Skip to content

Commit def81ce

Browse files
authored
Merge pull request #11 from php-api-clients/doc-readme-signature-documentation
Signature documentation
2 parents 458c126 + 23dde96 commit def81ce

File tree

1 file changed

+101
-8
lines changed

1 file changed

+101
-8
lines changed

README.md

Lines changed: 101 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,114 @@ use ApiClients\Tools\Psr7\Oauth1\Definition;
2424
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
2525
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha1Signature;
2626

27+
// Pass it a PSR-7 request and it returns a signed PSR7 request you can use in any PSR7 capable HTTP client.
28+
// By default a HMAC-SHA1 signature will be used, this can be changed, see examples below how to do that.
29+
$request = (new RequestSigner(
30+
new Definition\ConsumerKey('consumer_key'),
31+
new Definition\ConsumerSecret('consumer_secret')
32+
))->withAccessToken(
33+
new Definition\AccessToken('token_key'),
34+
new Definition\TokenSecret('token_secret')
35+
)->sign($request);
36+
```
37+
38+
# Suppported signatures
39+
40+
All supported signatures are HMAC signatures.
41+
42+
## MD5
43+
44+
Signs request with `HMAC-MD5`. Usage:
45+
46+
```php
47+
<?php
48+
49+
use ApiClients\Tools\Psr7\Oauth1\Definition;
50+
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
51+
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacMd5Signature;
52+
2753
$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
54+
$requestSigner = new RequestSigner(
55+
new Definition\ConsumerKey('consumer_key'),
56+
$consumerSecret,
57+
new HmacMd5Signature($consumerSecret)
58+
);
59+
```
60+
61+
## SHA1
62+
63+
Signs request using `HMAC-SHA1`. Usage:
64+
65+
```php
66+
<?php
67+
68+
use ApiClients\Tools\Psr7\Oauth1\Definition;
69+
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
70+
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha1Signature;
2871

72+
$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
2973
$requestSigner = new RequestSigner(
3074
new Definition\ConsumerKey('consumer_key'),
3175
$consumerSecret,
32-
new HmacSha1Signature( // Optional, but allows for other than HMAC SHA1 signatures
33-
$consumerSecret
34-
)
76+
new HmacSha1Signature($consumerSecret)
3577
);
78+
```
3679

37-
// Pass it a PSR-7 request and it returns a signed PSR7 request you can use in any PSR7 capable HTTP client.
38-
$request = $requestSigner->withAccessToken(
39-
new Definition\AccessToken('token_key'),
40-
new Definition\TokenSecret('token_secret')
41-
)->sign($request);
80+
## SHA256
81+
82+
Signs request using `HMAC-SHA256`. Usage:
83+
84+
```php
85+
<?php
86+
87+
use ApiClients\Tools\Psr7\Oauth1\Definition;
88+
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
89+
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha256Signature;
90+
91+
$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
92+
$requestSigner = new RequestSigner(
93+
new Definition\ConsumerKey('consumer_key'),
94+
$consumerSecret,
95+
new HmacSha256Signature($consumerSecret)
96+
);
97+
```
98+
99+
## SHA384
100+
101+
Signs request using `HMAC-SHA384`. Usage:
102+
103+
```php
104+
<?php
105+
106+
use ApiClients\Tools\Psr7\Oauth1\Definition;
107+
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
108+
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha384Signature;
109+
110+
$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
111+
$requestSigner = new RequestSigner(
112+
new Definition\ConsumerKey('consumer_key'),
113+
$consumerSecret,
114+
new HmacSha384Signature($consumerSecret)
115+
);
116+
```
117+
118+
## SHA512
119+
120+
Signs request using `HMAC-SHA512`. Usage:
121+
122+
```php
123+
<?php
124+
125+
use ApiClients\Tools\Psr7\Oauth1\Definition;
126+
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
127+
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha512Signature;
128+
129+
$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
130+
$requestSigner = new RequestSigner(
131+
new Definition\ConsumerKey('consumer_key'),
132+
$consumerSecret,
133+
new HmacSha512Signature($consumerSecret)
134+
);
42135
```
43136

44137
# Contributing

0 commit comments

Comments
 (0)