我正在构建一个用于在Laravel中训练自己的webapp的API。我整合了Tappleby基于令牌的身份验证系统,如下所示:
Route::get('api/v1/auth', 'Tappleby\AuthToken\AuthTokenController@index');
Route::post('api/v1/auth', 'Tappleby\AuthToken\AuthTokenController@store');
Route::delete('api/v1/auth', 'Tappleby\AuthToken\AuthTokenController@destroy');
Route::group(['prefix' => 'api/v1', 'before' => 'auth.token'], function ()
{
Route::resource('user', 'ApiUsersController');
});
在ApiUsersController
我理想情况下,想要做这样的事情:
public function index()
{
$payload = $request->header('X-Auth-Token');
if(empty($payload)) {
return $this->respondNotFound('User does not exist.');
}
$user = $this->driver->validate($payload);
return $user;
}
但是,header()
不适用于控制器。我该如何解决这个问题?
答案 0 :(得分:2)
在Laravel中,您可以像这样检索HTTP标头:
$value = Request::header('Content-Type');
将此添加到您的控制器,然后您可以使用它执行所需的操作。
此外,您可以将Content-Type更改为应有的内容。
在此处阅读更多内容:http://laravel.com/docs/4.2/requests