* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PsAccounts\Api\Client; use GuzzleHttp\Client; use PrestaShop\Module\PsAccounts\Exception\OptionResolutionException; use PrestaShop\Module\PsAccounts\Repository\TokenClientInterface; use PrestaShop\Module\PsAccounts\Repository\UserTokenRepository; /** * Class ServicesAccountsClient */ class SsoClient extends GenericClient implements TokenClientInterface { /** * @var UserTokenRepository */ private $userTokenRepository; /** * ServicesAccountsClient constructor. * * @param string $apiUrl * @param Client|null $client * * @throws OptionResolutionException */ public function __construct( $apiUrl, Client $client = null ) { parent::__construct(); // Client can be provided for tests if (null === $client) { $client = new Client([ 'base_url' => $apiUrl, 'defaults' => [ 'timeout' => $this->timeout, 'exceptions' => $this->catchExceptions, 'headers' => [ 'Accept' => 'application/json', ], ], ]); } $this->setClient($client); } /** * @param string $idToken * * @return array response */ public function verifyToken($idToken) { $this->setRoute('auth/token/verify'); return $this->post([ 'json' => [ 'token' => $idToken, ], ]); } /** * @param string $refreshToken * * @return array response */ public function refreshToken($refreshToken) { $this->setRoute('auth/token/refresh'); return $this->post([ 'json' => [ 'token' => $refreshToken, ], ]); } }