Что делает php CURLOPT_USERPWD

Мне было интересно, что CURLOPT_USERPWD на самом деле делает это с url, заголовком или данными запроса. Это ВМЕСТО из Authorization: Basic <base64 of user:pass> или оно работает вместе с этим?

Изменяет ли URL-адрес этому:

username:[email protected]

Я видел такой код, поэтому мне интересно, так как кажется, что если я запрошу URL-адрес в эквивалентном запросе NodeJS, он не работает только с заголовком авторизации (у меня есть теория, что сервер сломан и игнорирует заголовок Auth и используя имя пользователя: пароль в 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);

Спасибо

Ответ 1

Это изменение URL к этому?:

username:[email protected]

Нет, URL все тот же. Вы можете проверить с

curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

это

$encodedAuth = base64_encode(self::$pfAdapterUser.":".self::$pfAdapterPasswd);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic ".$encodedAuth));

И это

curl_setopt($ch, CURLOPT_USERPWD, self::$pfAdapterUser.":".self::$pfAdapterPasswd);

делают то же самое, поэтому нет необходимости использовать их вместе (хотя это не сломается), используйте один, и он будет работать нормально.