【问题标题】:Send secret key to API向 API 发送密钥
【发布时间】:2018-03-15 19:03:09
【问题描述】:

我的 API 在 .env 文件中有 AUTH_KEY。我想检查这个 KEY 槽中间件。 我使用 cURL 将所有请求发送到 API(另一个域)。而且我无法理解如何在每个请求中发送此密钥。

特别是,我该如何检查它。我找到了一些发送方式:

       curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'AUTH_KEY: secret'
    ));

我不知道工作与否,因为我不明白如何访问这个变量?

UPD。它是我自己的 API)现在有说明如何发送它)

这是我的 Request.php

class Request
{
//Return Array of objects with parameters 'id', 'name'
public static function sendRequest($request_type, $url, $param = null)
{
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, "backend_service.com/api/$url");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'AUTH_KEY: secret'
    ));
    switch ($request_type) {
        case "GET":
            $server_output = json_decode(curl_exec($ch));
            break;
        case "POST":
            $query = http_build_query(array(
                    "name" => $param->name,
                    "description" => $param->description,
                    "category_id" => 2,
                    "type_id" => 3)
            );
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
            $server_output = curl_exec($ch);
            break;
        case "PUT":
            $query = http_build_query(array(
                    "name" => $param->name,
                    "description" => $param->description,
                    "category_id" => $param->category_id,
                    "type_id" => $param->type_id)
            );
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request_type);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
            $server_output = curl_exec($ch);
            break;
        case "DELETE":
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request_type);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
            $server_output = curl_exec($ch);
            break;
    }
    curl_close($ch);
    return $server_output;
  }
}

【问题讨论】:

  • 第 3 方 API 通常应该有关于如何接收密钥的说明
  • 这取决于您如何构建或发送您的请求,我们不知道。
  • 有用的评论,劳伦斯。

标签: php api curl laravel-5


【解决方案1】:

在 API 端尝试以下操作:

<?php

$auth = isset(getallheaders()['AUTH_KEY']) ? getallheaders()['AUTH_KEY'] : '';
var_dump($auth);

它将为您提供标头参数AUTH_KEY。欲了解更多信息getallheaders()

【讨论】:

  • 我可以再问一个问题吗?为什么我无法像这样访问 AUTH_KEY,当我发出 ajax 请求时。我通过 Ajax 发送 Header。
  • @NikitaYunoshev 我刚试过,它可以工作,从这里复制代码并检查:eval.in/873536
  • 我把我的评论放在这里 - eval.in/873554。文字太多。如果可以,请检查
  • @NikitaYunoshev 在标题中没有 "AUTH_KEY 之前检查。
  • 我只是在“eval.in”中错过了它。在我的代码中一切都正确(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 2021-10-07
  • 2015-09-06
  • 2011-12-02
相关资源
最近更新 更多