Faltan datos de publicación de portador de autenticación de reposo Yii2
Estoy trabajando en una API REST. Por lo tanto, preparé una función que envía los datos de autenticación mediante curl al servidor REST. He implementado dos opciones de autenticación. El primero es la autenticación básica, el segundo es la autenticación a través de token (portador).
Ahora, estoy en trobles, porque en el servidor REST, los datos POST no son recibidos por el servidor REST en caso de autenticación mediante token. La autenticación en sí está funcionando, pero los datos POST se perderán. En caso de autenticación a través de la autenticación básica, los datos POST serán recibidos por el servidor REST, no hay problema.
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;
}
Además, $ curl_post_data muestra todos los datos del cliente durante la depuración, antes de que la llamada de descanso se ejecute con curl_exec ($ curl).
¿Cual podría ser el problema?