в

отаю над REST API. Поэтому я подготовил функцию, которая отправляет данные аутентификации через curl на REST-сервер. Я реализовал два варианта аутентификации. Первый - базовая аутентификация, второй - аутентификация через токен (Bearer).

Теперь я в тройке, потому что на сервере REST данные POST не принимаются сервером REST в случае аутентификации через токен. Сама аутентификация работает, но данные POST будут потеряны. В случае аутентификации с помощью базовой аутентификации данные POST будут получены сервером REST, без проблем.

private function request($postdata){

    $url = $this->service_url_private;
    $curl = curl_init($url);
    $curl_post_data = $postdata;


    // check if token authentication is used
    if (array_key_exists('token', $postdata )){
        $token = $postdata['token'];
        $authorization = 'Authorization: Bearer ' . $token;
        // prepare curl for Bearer Token Authorization
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization));
    } else {
        // otherwise use BASIC authentication
        if (array_key_exists('email', $postdata )){
            $username = $postdata['email'];
        }
        if (array_key_exists('password', $postdata )){
            $password = $postdata['password'];
        }
        // prepare curl for Basic Authentication
        curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
    }

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
    curl_setopt($curl, CURLINFO_HEADER_OUT, true); // Detail information for debugging
    curl_setopt($curl, CURLOPT_VERBOSE,true);
    $curl_response = curl_exec($curl); // Detail information for debugging
    $info = curl_getinfo($curl); // Detail information for debugging
    curl_close($curl);
    var_dump($info);
    return $curl_response;
}

Кроме того, $ curl_post_data показывает все данные клиентом во время отладки, прежде чем вызов rest будет выполнен с помощью curl_exec ($ curl).

В чем может быть проблема?