web-dev-qa-db-ja.com

phpのCURLOPT_USERPWDは何をしますか

私は CURLOPT_USERPWD が実際にリクエストのurl、ヘッダー、またはデータに対して何をしているのかと思っていました。 INSTEAD OF Authorization: Basic <base64 of user:pass>またはこれと一緒に動作しますか?

これをURLに変更していますか?:

username:[email protected]

このようなコードを見たので、NodeJSの同等のリクエストでそのURLをリクエストすると、Authorizationヘッダーだけで動作していないようです(サーバーが壊れていて、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);

ありがとう

19
Dominic

これを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);

同じことをしているので、それらを一緒に使用する必要はありません(壊れませんが)、1つを使用するとうまくいきます。

39
hlscalon