2017-10-04 166 views
2

我的API在.env文件中有AUTH_KEY。我想检查这个KEY槽中间件。 我用cURL将所有请求发送到API(另一个域)。而且我无法理解如何在每次请求时发送此密钥。发送秘密密钥到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; 
    } 
} 
+0

第三方API通常应该有关于如何接收密钥的说明 – apokryfos

+0

那么这取决于您如何构建或发送您的请求,我们不知道。 – iainn

+0

有用的评论,劳伦斯。 –

回答

1

尝试在API端以下几点:

<?php 

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

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

+1

它的工作。谢谢。 –

+0

我可以在这里再问一个问题吗?为什么当我发出ajax请求时,我无法像这样访问AUTH_KEY。我通过Ajax发送Header。 –

+1

@NikitaYunoshev @NikitaYunoshev我只是试过,它的工作原理,从这里复制代码,并检查:https://eval.in/873536 – mega6382