具有基本和 Bearer 身份验证的 cURL headers
cURL with both Basic and Bearer authentication headers
我正在使用 PHP cURL 来测试位于受 Apache HTPASSWD 保护的开发站点上的 API。
$jwt = // a standard JWT token
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://dev.mysite.com/api');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, 'myuser:mypass');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer '.$jwt));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
但是,设置 HTTPHEADER 似乎覆盖了 HTPASSWD 所需的基本身份验证,因为调用 return 401 UNAUTHORIZED。
我也试过(没成功):
curl_setopt($curl, CURLOPT_URL, 'https://myuser:mypass@dev.mysite.com/api');
有没有一种方法可以使用 cURL 在 API 调用中包含这两个 header 值?还是我这里做错了什么?
https://www.rfc-editor.org/rfc/rfc6750 说你可以使用 Bearer as
Form-Encoded Body Parameter: Authorization: Bearer mytoken123
URI Query Parameter: access_token=mytoken123
所以一个选项是将令牌设置为查询参数。
我正在使用 PHP cURL 来测试位于受 Apache HTPASSWD 保护的开发站点上的 API。
$jwt = // a standard JWT token
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://dev.mysite.com/api');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, 'myuser:mypass');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer '.$jwt));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
但是,设置 HTTPHEADER 似乎覆盖了 HTPASSWD 所需的基本身份验证,因为调用 return 401 UNAUTHORIZED。
我也试过(没成功):
curl_setopt($curl, CURLOPT_URL, 'https://myuser:mypass@dev.mysite.com/api');
有没有一种方法可以使用 cURL 在 API 调用中包含这两个 header 值?还是我这里做错了什么?
https://www.rfc-editor.org/rfc/rfc6750 说你可以使用 Bearer as
Form-Encoded Body Parameter: Authorization: Bearer mytoken123
URI Query Parameter: access_token=mytoken123
所以一个选项是将令牌设置为查询参数。