Что делает 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);
делают то же самое, поэтому нет необходимости использовать их вместе (хотя это не сломается), используйте один, и он будет работать нормально.