我有一個路由組中我routes.php
文件,像這樣指定的中間件:Laravel 5全球中間件不工作
Route::group(['prefix' => 'api', 'middleware' => 'api'], function() {
Route::post('oauth/access_token', function() {
return Response::json(Authorizer::issueAccessToken());
});
}
我現在用的是Lucadegasperi Oauth2 Server插件。對於其設置,我有$middleware
陣列Kernel.php
文件(內核級)中輸入下列LucaDegasperi項:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\LucaDegasperi\OAuth2Server\Middleware\OAuthExceptionHandlerMiddleware::class,
];
的$middlewareGroups
陣列同一類的如下:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];
OAuthExceptionHandlerMiddleware
所做的是將格式異常格式化爲JSON響應。現在,當我如圖所示在路線組中應用'middleware' => 'api'
時,全局中間件不工作。我可以這樣說,因爲HTML錯誤頁面會在發生異常時顯示。但是,當我省略路由組中的'middleware' => 'api'
時,全局中間件可以正常工作,並且我會針對錯誤獲取JSON響應。
我該如何克服這個問題?
是的。我按照指示一步一步。 –
也許你錯過了'Throttle'庫?我不知道,因爲我沒有用過它。你能發佈更多關於錯誤的信息嗎? – soutoner