【发布时间】:2017-11-11 04:50:35
【问题描述】:
我正在使用 Laravel 5.4 创建一个 API,它运行良好。我使用了以下中间件 => auth:api 像这样
Route::group(['middleware' => 'auth:api'], function(){
Route::get('URIValue', ControllerName@action) //Example
});
我已经用 postman 测试过,当请求头包含以下键和值时它运行良好:
- 授权:Bearer api_token
- 接受:应用程序/json
当 api_token 无效时,会执行 Handler 类的未认证功能。 laravel 返回的默认响应是
'error' => 'Unauthenticated' // in JSON format
但是当没有设置 Accept 头时,laravel 默认返回一个视图。但是对于 API,视图是不可接受的。
如何强制 laravel 检查是否为路由组中的路由的每个请求设置了正确的 Accept 标头(在这种情况下,该值必须是 => accept/json)?
类似:
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->header('Accept' => 'application/json') //this
->group(base_path('routes/api.php'));
}
或
Route::group(['middleware' => 'auth:api',
'headers' => ['Accept' => 'application/json']
], function(){
Route::get('URIValue', ControllerName@action) //Example
});
【问题讨论】:
标签: php json api laravel-5 laravel-5.4