Я создаю API с Laravel 5.4, и все работает хорошо. Я использовал следующее промежуточное ПО => auth: api, как это
Route::group(['middleware' => 'auth:api'], function(){ Route::get('URIValue', ControllerName@action) //Example });
Я тестировал его с почтальоном, и он хорошо работает, когда заголовок запроса содержит следующие ключи и значения:
Если 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')); }
Пространствоprotected function mapApiRoutes() { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->header('Accept' => 'application/json') //this ->group(base_path('routes/api.php')); }
Пространство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 });