【问题标题】:How to Authenticate an API in PHP?如何在 PHP 中验证 API?
【发布时间】:2017-08-20 07:55:41
【问题描述】:

所以我正在尝试使用开发人员给我的密钥对 API 进行身份验证。这是Propublica Congress API,如果我正在制作自己的 API,那么在谷歌上搜索有关该主题的任何内容似乎都会让我想到如何创建密钥以提供给用户(在此处搜索是相同的)。我想对这个 API 进行身份验证,以便从中获取信息,但在我看来似乎没有一个简单的答案。如何使用 PHP 验证此 API?

【问题讨论】:

  • 您使用什么来发出 API 请求,例如 Javascript AJAX、PHP Curl 或您使用什么来获取数据??

标签: php api authentication


【解决方案1】:

这取决于您如何从 API 获取数据,假设您使用 PHP Curl 获取数据或使用 Javascript 发出请求,您必须创建自定义标头并通过自定义标头名称传递您的密钥 X-API-Key .

这是一个简单的 PHP Curl 示例,我已经放置了自定义标题

curl_setopt( $res, CURLOPT_URL, $url );
//curl_setopt( $res, CURLOPT_POST, 3 ); 
//curl_setopt( $res, CURLOPT_POSTFIELDS, $fields );
curl_setopt( $res, CURLOPT_RETURNTRANSFER, true ); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "X-API-Key: $key",
    "customer-header2:value2"
    )); //you can specify multiple custom keys.


$result = curl_exec( $res );
print_r($result);

首先,您必须了解人们如何使用 PHP 或 JS 调用 API,然后您可以尝试身份验证和自定义标头。
我想向您推荐。
1) PHP 卷曲example
2) JQUery AJAX 向任何 API 发出请求Link

你需要先了解一下如何使用 PHP Curl 调用 API。

【讨论】:

    【解决方案2】:

    right there in the documentation, 只需为每个请求添加一个带有您的 api 密钥的 X-API-Key 标头。

    【讨论】:

    • 也许我有点不知所措......但老实说,我不知道在标题中添加 that 意味着什么。在 URL 中添加 ?X-API-Key=key 仍然告诉我这是禁止的。
    • 他不是这个意思。您应该发布代码,以获取更具体的答案。你为此使用 curl 吗?那么请看这里:stackoverflow.com/questions/8115683/php-curl-custom-headers
    【解决方案3】:

    您必须通过电子邮件向他们发送 API 密钥...进入网站并点击此按钮

    从所有者那里收到 API 密钥后,您就可以根据文档在请求中使用它。

    【讨论】:

    • 你是用 curl 来获取数据的吗?
    猜你喜欢
    • 1970-01-01
    • 2014-05-04
    • 2018-01-06
    • 1970-01-01
    • 2018-10-08
    • 2010-12-17
    • 2011-07-30
    • 2021-11-13
    • 1970-01-01
    相关资源
    最近更新 更多