php的CURLOPT_USERPWD是做什么的

2022-08-30 14:52:54

我想知道CURLOPT_USERPWD实际上对请求的URL,标头或数据做了什么。是代替它还是与此一起工作?Authorization: Basic <base64 of user:pass>

它是否将 url 修改为此?

username:password@someurl.com

我看到了一些这样的代码,所以我想知道,因为似乎如果我在NodeJS等效请求中请求该url,它不能仅使用授权标头(我有一个理论,服务器已损坏并忽略Auth标头并在URL中使用username:password):

    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:password@someurl.com

不,网址仍然相同。您可以通过以下方式进行核对

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);

正在做同样的事情,所以没有必要一起使用它们(虽然它不会中断),使用一个,它会正常工作。


答案 2

推荐