2014-06-24 54 views
3

我有一個由Laravel 4構建的API中心安裝程序,由REST API,前端和管理面板組成。前端和管理員都使用內部請求來使用API​​。向Laravel 4中的內部請求添加頭文件

我作出這樣的內部請求:

$request = Request::create($endpoint, $method, $parameters, $cookies, $files, $server, $content); 
$this->response = Route::dispatch($request); 

,一切工作正常。

現在我想要使用an approach similar to AWS來保護API,當我創建上面的請求時,我還想設置一些自定義標頭(api key,signature,timestamp)。

我還沒有找到添加標題到自定義請求的方法。這在使用內部請求時可能嗎?

回答

3

原來設定標題是調度請求之前做

$request->headers->set('MyHeaderName', 'header value'); 

一樣簡單。

漁獲(當我嘗試這樣沒有工作的原因)是在API中我必須使用 Route::getCurrentRequest()讓我自定義的請求(而不是僅僅要求申請門面):

$request = Route::getCurrentRequest(); 
$all_headers = $request->header(); 
$specific_header = $request->header("SomeHeaderName"); 
+0

'Request :: instance() - > headers-> set('MyHeaderName','header value');'也是可以的。 – Epoc

0

您可以設置使用application event頭在你的filters.php

App::after(function($request, $response) 
{ 
    $response->headers->set('key','value'); 
}); 

如果發現使用了他們很多,他們搬進自己的service provider可以提供一個更好的結構。

+0

謝謝,但這恐怕不起作用。我需要能夠附加標頭的方式,我可以附加$ cookie,然後Route :: dispatch()整個事情。 – whonoes