Установка токена Bearer в заголовке в запросе cURL GET в PHP - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть эта php функция, которая должна обновлять sh токен, передавая предыдущий токен и предыдущий refre sh токен, полученный от пользователя. Теперь я не уверен, правильно ли установлены заголовки или что-то еще здесь работает. Я получил это высказывание о заголовке в документации API, отправленной мне:

  • Авторизация: ранее приобретенный токен.

Пример добавления токена: request.Headers.Add (" Авторизация »,« Носитель »+ токен); это не php, я думаю, что, погуглив, это c#.

  • RefreshToken: ранее приобретенный refre sh токен

Я просто недавно начали использовать cURL, и они сказали, что это должно быть сделано в ванили php.

/*------------------------------------Function for refreshing user's token------------------------------------------------*/

//Method: GET.
$token = getUser($url1,$jsonBody1,$header1)->token;
$refreshToken = getUser($url1,$jsonBody1,$header1)->refreshToken;
$url2 = "urlForTokenRefreshing";
$header2 = ["Accept: application/json","Content-Type:application/json", "Authorization: Bearer ".$token, "RefreshToken: ".$refreshToken];

function refreshToken($url,$headers){

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLOPT_HEADER, 1);
    $response = curl_exec($ch);
    curl_close($ch);

    if($response === false){
        echo "Curl error: " . curl_error($ch)."<br>";
    }
    else{
        echo "Success.<br>";
    }

    return $response;

}
print_r(refreshToken($url2,$header2));

Ошибка, которую я получаю:

"Internal server error"
Success.

Это говорит об ошибке, но условие, которое проверяет если ответ cURL solid говорит "успех". Я озадачен этим.

Функция getUser () корректно возвращает пользователя, от которого мы можем получить токен и refreshToken. Параметры $url1,$jsonBody1,$header1 для этого также правильны, я попробовал.

Не уверен, что этот правильный синтаксис для заголовков, так как они в качестве примера показали c# код или мой "перевод" этого неверен.

Edit1:

Я пробовал в Почтальоне, и он работает. Так что в моем коде есть ошибка / ошибка ...

Edit2: Думаю, я понял это. Код был хорош с самого начала. Вот моя ошибка: я дважды вызывал функцию getUser(), когда я

$token = getUser($url1,$jsonBody1,$header1)->token;
$refreshToken = getUser($url1,$jsonBody1,$header1)->refreshToken;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...