2017-10-04 204 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