Source of file RefreshTokenMiddleware.php

Size: 1,095 Bytes - Last Modified: 2019-08-09T18:27:54+00:00

/home/travis/build/zerospam/sdk-framework/src/Client/Middleware/RefreshToken/RefreshTokenMiddleware.php

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
<?php
/**
 * Created by PhpStorm.
 * User: aaflalo
 * Date: 18-09-11
 * Time: 10:23
 */

namespace ZEROSPAM\Framework\SDK\Client\Middleware\RefreshToken;

use League\OAuth2\Client\Token\AccessToken;
use ZEROSPAM\Framework\SDK\Client\IOAuthClient;
use ZEROSPAM\Framework\SDK\Client\Middleware\IRefreshTokenMiddleware;

class RefreshTokenMiddleware implements IRefreshTokenMiddleware
{

    /**
     * @var IOAuthClient
     */
    protected $client;

    /**
     * Set the OAuth Client.
     *
     * @param IOAuthClient $client
     *
     * @return $this
     */
    public function setClient(IOAuthClient $client): IRefreshTokenMiddleware
    {
        $this->client = $client;

        return $this;
    }

    /**
     * Take care of refreshing the token
     *
     * @param AccessToken $previousToken
     *
     * @param int         $tries
     *
     * @return AccessToken
     */
    public function handleRefreshToken(AccessToken $previousToken, int $tries): AccessToken
    {
        return $this->client->getConfiguration()->refreshToken($previousToken->getRefreshToken());
    }
}