Пытаюсь отправить заголовок авторизации, но что-то не пойму как это сделать.
вот из мануала
Цитата |
Процесс авторизации Urlавторизации: https://e-solution.pickpoint.ru/auth/oauth2/token Http Метод: POST Content-Type: application/x-www-form-urlencoded Данные формы: тут что передавать Пример: • Запрос client_id={testGuid}&client_secret={base64Encoded}&grant_type=password&username=test& ; ;password=test • Ответ: {"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ","token_type":"bearer","expires_in":8639 9} |
Цитата |
Для авторизации необходимо добавлять в Header запросов заголовок Authorization, содержащий следующие данные: "{Token_type} {Token}" и ВНИМАНИЕ! Для всех запросов, требующих авторизации необходимо добавлять заголовок Authorization, с указанием действующего токена. При отсутствии, либо истечении срока годности, токена будет возвращаться ответ: HTTP/1.1 401 Unauthorized |
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization' => $header_array['token_type'].' '.$header_array['access_token'] ] );
[error] => Array
(
[code] =>
[message] => Authorization has been denied for this request.
)
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization' => $header_array['token_type'].' '.$header_array['access_token'] ] );
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: ' . $header_array['token_type'].' '.$header_array['access_token'] ] );
class ClCurl {
public $method;
public $uri;
public $data;
public $headers;
public $ch;
public function __construct($method, $uri) {
$this->method = $method;
$this->uri = $uri;
$this->headers = [];
return $this->ch = curl_init();
}
public function setAuthorization($token) {
$this->headers[] = 'Authorization: Bearer ' . $token;
}
public function setData($data) {
if (!empty($data)) {
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $data);
$this->headers[] = 'Content-Type: application/json';
$this->headers[] = 'Content-Length: ' . strlen($data);
}
$this->data = $data;
}
public function doRequest() {
if (!empty($this->ch)) {
switch ($this->method) {
case 'GET' :
curl_setopt($this->ch, CURLOPT_URL, $this->uri);
break;
case 'PUT':
curl_setopt($this->ch, CURLOPT_URL, $this->uri);
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, 'PUT');
break;
}
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT, 10);
if (!empty($this->headers)) {
curl_setopt($this->ch, CURLOPT_HTTPHEADER, $this->headers);
}
$response = curl_exec($this->ch);
$error = curl_error($this->ch);
$statusCode = curl_getInfo($this->ch, CURLINFO_HTTP_CODE);
curl_close($this->ch);
return ['http_code' => $statusCode, 'error' => $error, 'response' => $response];
}
}
}