Dados de postagem do portador de autenticação de repouso Yii2 ausentes
Estou trabalhando em uma API REST. Portanto, preparei uma função que envia os dados de autenticação via curl para o servidor REST. Eu implementei duas opções de autenticação. O primeiro é a autenticação básica, o segundo é a autenticação via token (portador).
Agora, estou em trobles, porque no servidor REST, os dados POST não são recebidos pelo servidor REST no caso de autenticação via token. A autenticação em si está funcionando, mas os dados do POST serão perdidos. No caso de autenticação via autenticação básica, os dados do POST serão recebidos pelo servidor REST, sem problemas.
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;
}
Além disso, $ curl_post_data está mostrando todos os dados pelo cliente durante a depuração, antes que a chamada restante seja executada com curl_exec ($ curl).
Qual poderia ser o problema?