Skip to content

Commit 803e266

Browse files
committed
Middle ground to do the request signing
1 parent 1df981f commit 803e266

File tree

1 file changed

+15
-38
lines changed

1 file changed

+15
-38
lines changed

src/Middleware/Oauth1Middleware.php

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
use ApiClients\Foundation\Middleware\MiddlewareInterface;
66
use ApiClients\Foundation\Middleware\PostTrait;
77
use ApiClients\Foundation\Oauth1\Options;
8+
use ApiClients\Tools\Psr7\Oauth1\Definition;
9+
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
810
use JacobKiers\OAuth\Consumer\ConsumerInterface;
9-
use JacobKiers\OAuth\Request\Request as OAuthRequest;
1011
use JacobKiers\OAuth\SignatureMethod\SignatureMethodInterface;
1112
use JacobKiers\OAuth\Token\TokenInterface;
1213
use Psr\Http\Message\RequestInterface;
@@ -84,42 +85,18 @@ private function validateOptions(array $options): bool
8485

8586
private function signRequest(RequestInterface $request, array $options): RequestInterface
8687
{
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);
124101
}
125102
}

0 commit comments

Comments
 (0)