|
5 | 5 | use ApiClients\Foundation\Middleware\MiddlewareInterface; |
6 | 6 | use ApiClients\Foundation\Middleware\PostTrait; |
7 | 7 | use ApiClients\Foundation\Oauth1\Options; |
| 8 | +use ApiClients\Tools\Psr7\Oauth1\Definition; |
| 9 | +use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner; |
8 | 10 | use JacobKiers\OAuth\Consumer\ConsumerInterface; |
9 | | -use JacobKiers\OAuth\Request\Request as OAuthRequest; |
10 | 11 | use JacobKiers\OAuth\SignatureMethod\SignatureMethodInterface; |
11 | 12 | use JacobKiers\OAuth\Token\TokenInterface; |
12 | 13 | use Psr\Http\Message\RequestInterface; |
@@ -84,42 +85,18 @@ private function validateOptions(array $options): bool |
84 | 85 |
|
85 | 86 | private function signRequest(RequestInterface $request, array $options): RequestInterface |
86 | 87 | { |
87 | | - $oauthRequest = OAuthRequest::fromConsumerAndToken( |
88 | | - $options[self::class][Options::CONSUMER], |
89 | | - $options[self::class][Options::TOKEN], |
90 | | - $request->getMethod(), |
91 | | - (string)$request->getUri(), |
92 | | - $this->extractParamsFromQuery( |
93 | | - $request->getUri()->getQuery() |
94 | | - ) |
95 | | - ); |
96 | | - $oauthRequest->setParameter('oauth_version', '1.0', false); |
97 | | - $oauthRequest->signRequest( |
98 | | - $options[self::class][Options::SIGNATURE_METHOD], |
99 | | - $options[self::class][Options::CONSUMER], |
100 | | - $options[self::class][Options::TOKEN] |
101 | | - ); |
102 | | - |
103 | | - return $request->withAddedHeader( |
104 | | - 'Authorization', |
105 | | - trim(substr($oauthRequest->toHeader(), 15)) |
106 | | - ); |
107 | | - } |
108 | | - |
109 | | - private function extractParamsFromQuery(string $query): array |
110 | | - { |
111 | | - $params = parse_query($query); |
112 | | - |
113 | | - uksort($params, 'strcmp'); |
114 | | - |
115 | | - foreach ($params as $key => $value) { |
116 | | - if ($value !== null) { |
117 | | - continue; |
118 | | - } |
119 | | - |
120 | | - unset($params[$key]); |
121 | | - } |
122 | | - |
123 | | - return $params; |
| 88 | + /** @var ConsumerInterface */ |
| 89 | + $consumer = $options[self::class][Options::CONSUMER]; |
| 90 | + |
| 91 | + /** @var TokenInterface */ |
| 92 | + $token = $options[self::class][Options::TOKEN]; |
| 93 | + |
| 94 | + return (new RequestSigner( |
| 95 | + new Definition\ConsumerKey($consumer->getKey()), |
| 96 | + new Definition\ConsumerSecret($consumer->getSecret()) |
| 97 | + ))->withAccessToken( |
| 98 | + new Definition\AccessToken($token->getKey()), |
| 99 | + new Definition\TokenSecret($token->getSecret()) |
| 100 | + )->sign($request); |
124 | 101 | } |
125 | 102 | } |
0 commit comments