Skip to content

Commit c644b40

Browse files
author
Antoine Aflalo
committed
perf(RefreshToken): Add number of tries into callbacks
Used to know how many time the refreshToken has been called.
1 parent 11abebf commit c644b40

4 files changed

Lines changed: 14 additions & 4 deletions

File tree

src/Client/Middleware/Error/AuthenticationMiddleware.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public static function statusCode(): array
5757

5858
public function handle(IRequest $request, ResponseInterface $httpResponse, array $parsedData): array
5959
{
60-
if ($request->tries() >= self::MAX_TRIES) {
60+
if ($request->tries() > self::MAX_TRIES) {
6161
throw new TooManyRetriesException(sprintf('Tried to re-auth more than %d times.', self::MAX_TRIES));
6262
}
6363
$this->client->refreshToken();

src/Client/Middleware/IRefreshTokenMiddleware.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ public function setClient(IOAuthClient $client): self;
2828
*
2929
* @param AccessToken $previousToken
3030
*
31+
* @param int $tries
32+
*
3133
* @return AccessToken
3234
*/
33-
public function handleRefreshToken(AccessToken $previousToken): AccessToken;
35+
public function handleRefreshToken(AccessToken $previousToken, int $tries): AccessToken;
3436
}

src/Client/Middleware/RefreshToken/RefreshTokenMiddleware.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,11 @@ public function setClient(IOAuthClient $client): IRefreshTokenMiddleware
3939
*
4040
* @param AccessToken $previousToken
4141
*
42+
* @param int $tries
43+
*
4244
* @return AccessToken
4345
*/
44-
public function handleRefreshToken(AccessToken $previousToken): AccessToken
46+
public function handleRefreshToken(AccessToken $previousToken, int $tries): AccessToken
4547
{
4648
return $this->client->getConfiguration()->refreshToken($previousToken->getRefreshToken());
4749
}

src/Client/OAuthClient.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ class OAuthClient implements IOAuthClient
7171
*/
7272
private $refreshTokenMiddlewares = [];
7373

74+
/**
75+
* @var IRequest
76+
*/
77+
private $lastRequest;
78+
7479
/**
7580
* OauthClient constructor.
7681
*
@@ -208,7 +213,7 @@ public function refreshToken(): AccessToken
208213
}
209214
$token = $this->token;
210215
foreach ($this->refreshTokenMiddlewares as $middleware) {
211-
$token = $middleware->handleRefreshToken($token);
216+
$token = $middleware->handleRefreshToken($token, $this->lastRequest->tries());
212217
}
213218

214219
return $this->token = $token;
@@ -254,6 +259,7 @@ public function getConfiguration(): IOAuthConfiguration
254259
*/
255260
public function processRequest(IRequest $request): IResponse
256261
{
262+
$this->lastRequest = $request;
257263
foreach ($this->preRequestMiddlewares as $middleware) {
258264
$middleware->handle($request);
259265
}

0 commit comments

Comments
 (0)