【问题标题】:Basic HTTP Authentication: API request: get data基本 HTTP 身份验证:API 请求:获取数据
【发布时间】:2014-12-11 18:32:17
【问题描述】:

我对基本 HTTP 身份验证 (PHP) 很陌生,想知道如何在另一个网站的 api 上验证自己。我有一个用户名和密码来访问外部 api。用户名在 $this->id 中,密码在 $this->key 中。

这是获取我想要的数据的 api url: http://api.medipim.be/v2/web/product/print/0011890?language=nl&user_id='.$this->id.'&validation='.$this->key

我如何验证自己的身份?通过 curl 的任何选项?

【问题讨论】:

    标签: php api curl basic-authentication


    【解决方案1】:

    Otto 的回答通常是使用 php 和 curl 对 medipim api 进行身份验证的正确方法。但是,有问题的 api 调用不需要 http 身份验证;该请求使用基于您的凭据的令牌进行身份验证。这样,可以将 url 传递给(web)客户端,而不会暴露您的 api 密钥。我们最近更新了此调用的文档,因此您可能想再看看。

    【讨论】:

      【解决方案2】:

      可以,CURL 可以为你设置用户并通过:

      curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
      curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
      

      $username 替换为$this->id 和类似的密码

      【讨论】:

      • 1) 如何处理外部站点的url?由于 url 也需要变量。 2) $username:$password 必须在 "" 内吗?
      • 1) 在 URL 和 AUTH 标头中提供它们会很奇怪。请检查 api 2) 的文档,你需要在它们之间用冒号连接它们。你也可以写$this->id . ':' . $this->key
      猜你喜欢
      • 1970-01-01
      • 2016-09-29
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      相关资源
      最近更新 更多