401使用引荐来源身份验证时未经授权

时间:2020-04-14 17:49:25

标签: php curl http-referer

我正在尝试使用一个API,该API表示要在自定义应用程序中使用它来设置自定义引用。这是官方文字:

API要求(如果启用)令牌,以便发送读取操作 允许请求,否则将显示“ Missing'key'parameter”消息 返回。

安全模块将使用引荐来源网址标题(Java中为“ referer”, 请求中的HTTP_REFERER)以识别并过滤 授权域。

我目前可以使用提供的特殊URL登录到Web界面,该URL似乎可以设置会话,然后重定向到主URL。如果我尝试直接导航到主URL而没有先使用特殊URL,则会出现401错误,如预期的那样(此后,我只能使用主URL)

上方文本下方给出的键类似于:http://example.com/api/?key=secretkeyhere

尽管如上所述,我可以通过Web浏览器中的GUI工具使用API​​,但我不知道如何以编程方式连接到该API。我试过在Linux中使用curl和在PHP中使用curl。都失败了。

来自终端的卷曲:

curl --header http://example.com/api/?key=secretkeyhere http://example.com/api/search?query=terms*

PHP中的卷曲:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/api/search?query=terms');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://example.com/api/?key=secretkeyhere');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
$html = curl_exec($ch);
curl_close($ch);
echo "$html";
?>

我继续得到:

未授权此服务器无法验证您是否有权 访问所需的文档。您提供的是错误的 凭据(例如密码错误),或者您的浏览器无法理解 如何提供所需的凭据。

我在这里做错什么了吗? API设置不正确吗?我已经读过man页的cURL,看来这正是我应该做的。

0 个答案:

没有答案