2016-04-18 3 views
0

Ich habe einen Dienst, der über einen anderen Dienst authentifizieren muss.Laravel Curl in Middleware wird zur Antwort hinzugefügt

Dafür habe ich eine Middleware eingerichtet, die den Berechtigungsheader aus meiner ursprünglichen Anfrage extrahiert und dann eine Curl-Anfrage an den Auth Service mit dem Headersatz erstellt.

public function handle($request, Closure $next) { 

    $authHeader = $request->header('Authorization'); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://api.user.eventmanager.app/getAccess"); 
    curl_setopt($ch,CURLOPT_HTTPHEADER,array(
     'Authorization: ' . $authHeader, 
     'Origin: http://api.asdf.rerere.app' 
    )); 

    $result = curl_exec($ch); 

    if($result) { 
     curl_close($ch); 

     return $next($request); 
    } else { 
     curl_close($ch); 

     return response("Invalid Token or expired Token", 401); 
    } 

} 

Die Anforderung gibt die angeforderte Ressource, wie erwartet, sondern fügt auch in dem Benutzerobjekt in der Antwort (die, die ich über die curl Anfrage bekommen, mag ich in der Middleware mit dem Benutzerobjekt weiter zu tun, überprüft, aber ich möchte nicht, dass es zur ursprünglichen Anfrage zurückkehrt).

Hier ist, was mein Controller für die Antwort möchte ich wie folgt aussieht:

public function show($id) 
{ 

    $event = Event::with('timeTableEntries', 'venue', 'bands')->find($id); 

    if(!$event) { 

     return $this->respondNotFound('Event does not exist!'); 

    } 

    return $this->respond([ 
     'data' => $this->eventTransformer->transform($event) 
    ]); 
} 

Irgendwie ist der Benutzer-Objekt aus dem curl in meinem respons landet.

Eine Idee, warum das passiert?

Antwort

Verwandte Themen