在我的應用程序中,我實施了OAuth2服務器(oauth2-server-laravel)和定製的認證包(Sentinel by Cartalyst)。暫時禁用/繞過中間件
在我的routes.php文件:
Route::group(['before' => 'oauth'], function()
{
// ... some routes here
}
所以要求必須提供授權頭或應用程序退出與OAuthException。
現在我想單元測試我的控制器。所以我必須爲每個測試使用OAuth會話和訪問令牌來爲我的數據庫創建種子。 然後覆蓋call()
-方法TestCase
,並使用承載令牌設置HTTP授權標頭。
有沒有一種方法來禁用或繞過中間件(在我的情況下只是爲了單元測試)?
在Laravel 4中,它們被稱爲路由過濾器,無論如何它們在測試環境中都被禁用。您也可以使用Route::enableFilters()
手動啓用/禁用它們。
我也想知道這個答案,迄今爲止我的閱讀是,無法在Laravel 5中禁用Laravel 5中的路由過濾器的方式禁用Laravel 5中的中間件。但是我很熱衷於被證明是錯誤的。 – delatbabel 2015-04-07 10:13:16