Viewing File: /usr/local/cpanel/whostmgr/docroot/cgi/ncssl/source/src/Service/Auth/Auth.php
<?php
namespace App\Service\Auth;
use App\Service\State\StateUser;
class Auth
{
private const AUTHORISATION_HEADER_PATTERN = 'Authorization: Bearer %s';
private const CURL_ERROR_EXCEPTION_MESSAGE_PATTERN = 'CURL error during OAuth request (%s): %s with params: %s';
private const CURL_EMPTY_RESPONSE_EXCEPTION_MESSAGE_PATTERN = 'Empty response from "%s" with params: %s';
public function __construct(
private readonly StateUser $stateUser,
) {
}
/**
* @throws OAuthException
*/
public function accessResource(string $url, array $requestParameters): string
{
$accessToken = $this->stateUser->getAccessToken();
if (!$accessToken) {
throw new OAuthException('User is unauthorized');
}
$requestString = http_build_query($requestParameters);
$crl = curl_init();
curl_setopt($crl, CURLOPT_HTTPHEADER, [
sprintf(static::AUTHORISATION_HEADER_PATTERN, $accessToken->getToken()),
]);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_POST,true);
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_POSTFIELDS, $requestString);
curl_setopt($crl, CURLOPT_TIMEOUT, 600);
$response = curl_exec($crl);
$errno = curl_errno($crl);
if ($errno) {
throw new OAuthException(sprintf(static::CURL_ERROR_EXCEPTION_MESSAGE_PATTERN, $errno, curl_error($crl), $requestString),
0,
null,
$response
);
}
curl_close($crl);
if (empty($response)) {
throw new OAuthException(sprintf(static::CURL_EMPTY_RESPONSE_EXCEPTION_MESSAGE_PATTERN, $url, $requestString));
}
return $response;
}
}
Back to Directory
File Manager