¿Qué hace el CURLOPT_USERPWD de php?
basic-authentication (1)
Me preguntaba qué hace realmente CURLOPT_USERPWD a la url, el encabezado o los datos de una solicitud. ¿Está EN LUGAR DE LA AUTORIZACIÓN Authorization: Basic <base64 of user:pass>
o funciona junto a esto?
¿Está modificando la url a esto ?:
username:[email protected]
Vi un código como este, así que me pregunto, ya que parece que si solicito la url en una solicitud equivalente a NodeJS no funciona con solo un encabezado de Autorización (tengo una teoría de que el servidor está roto e ignorando el encabezado Auth y usando el nombre de usuario: contraseña en la url):
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$encodedAuth = base64_encode(self::$pfAdapterUser.":".self::$pfAdapterPasswd);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authentication : Basic ".$encodedAuth));
curl_setopt($ch, CURLOPT_USERPWD, self::$pfAdapterUser.":".self::$pfAdapterPasswd);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
Gracias
¿Está modificando la url a esto ?:
username:[email protected]
No, la url sigue siendo la misma. Puedes consultar con
curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
Esta
$encodedAuth = base64_encode(self::$pfAdapterUser.":".self::$pfAdapterPasswd);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic ".$encodedAuth));
Y esto
curl_setopt($ch, CURLOPT_USERPWD, self::$pfAdapterUser.":".self::$pfAdapterPasswd);
están haciendo lo mismo, así que no hay necesidad de usarlos juntos (aunque no se romperá), use uno y funcionará bien.