2016-04-18 19 views
0

私はサービスを持っており、別のサービスを介して認証する必要があります。ミドルウェアのLaravel curlが応答に追加されます

私は、私の最初の要求からAuthorizationヘッダーを抽出し、ヘッダーセットでAuth Serviceにカール要求を作成するミドルウェアをセットアップしました。

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); 
    } 

} 

要求が予想されるとして要求ressourceを返しますが、また応答(私はカールリクエストを経由して取得する1のユーザーオブジェクトに追加し、私は、さらにミドルウェア内のユーザーオブジェクトにチェックをやりたいですしかし、私はそれが最初の要求に戻ってほしくない)。

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) 
    ]); 
} 

はどういうわけか、カールからユーザーオブジェクトが私のRESPONSで終わる:ここ

は次のように私が欲しい応答のための私のコントローラが見えるものです。

これはどうして起こりますか?

答えて

2

あなたはカールオプションで転送を返さないので、応答の出力が停止し、代わりに文字列が返されます。 http://php.net/manual/en/function.curl-setopt.php

+1

あたりとして

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

あなたが私を救った、ありがとうございました:) – Thargor

関連する問題