2017-10-04 4 views
2

Meine API hat AUTH_KEY in .env-Datei. Ich möchte diese KEY Trough Middleware überprüfen. Ich sende alle meine Anfragen an API (eine andere Domäne) mit cURL. Und ich kann nicht verstehen, wie ich diesen Schlüssel mit jeder Anfrage senden kann.Senden Sie den geheimen Schlüssel an API

Insbesondere, wie kann ich es überprüfen. Ich fand einen Weg, es zu senden:

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

Ich weiß nicht funktioniert hat oder nicht, weil ich nicht verstehe, wie der Zugriff auf diese Variable bekommen?

UPD. Seine meine eigene API) Es gibt jetzt Anweisungen, wie es zu senden)

Hier ist meine 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

Die 3rd-Party-API sollte normalerweise Anweisungen haben, wie es erwartet, den Schlüssel – apokryfos

+0

zu erhalten Nun, das hängt davon ab, wie Sie Ihre Anfragen erstellen oder senden, die wir nicht kennen. – iainn

+0

Nützlicher Kommentar, Lawrence. –

Antwort

1

Versuchen Sie Folgendes auf dem API-Ende:

<?php 

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

Es wird Ihnen bieten der Header-Parameter AUTH_KEY. für weitere Informationen getallheaders()

+1

Es funktioniert. Vielen Dank. –

+0

Kann ich bitte noch eine Frage stellen? Warum kann ich nicht so auf AUTH_KEY zugreifen, wenn ich eine Ajax-Anfrage mache? Ich sende Header über Ajax. –

+1

@NikitaYunoshev Ich habe gerade versucht und es funktioniert, kopieren Sie den Code von hier und überprüfen Sie mit dem: https://eval.in/873536 – mega6382

Verwandte Themen