在Laravel 4中向内部请求添加标头

时间:2014-06-24 21:26:56

标签: rest symfony laravel laravel-4

我有一个使用Laravel 4构建的以API为中心的设置,包括REST API,前端和管理面板。前端和管理员都使用内部请求来使用API​​。

我发出这样的内部请求:

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

一切正常。

现在我想使用an approach similar to AWS来保护API,当我创建上面的请求时,我还要设置一些自定义标头(api密钥,签名,时间戳)。

我还没有找到将标头添加到自定义请求的方法。使用内部请求时是否可以这样做?

2 个答案:

答案 0 :(得分:5)

结果设置标题就像执行

一样简单
$request->headers->set('MyHeaderName', 'header value');

在发送请求之前。

捕获(以及我尝试时无效的原因)是我必须使用的API Route::getCurrentRequest()获取我的自定义请求(而不是只询问请求外观):

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

答案 1 :(得分:0)

您可以使用filters.php

中的application event设置标题
App::after(function($request, $response)
{
   $response->headers->set('key','value');
});

如果您发现自己使用了很多这些内容,将它们移到自己的service provider中可能会提供更好的结构。