Ana*_*sra 4 php laravel laravel-routing laravel-5 laravel-5.2
在我的应用程序中,我想在我的笔记本电脑APP_ENV=local和开发上运行时禁用CSRF APP_ENV=dev.无法通过routes.php或网络中间件来了解如何做到这一点.这是我的routes.php
Route::group(['middleware' => ['web']], function () {
Route::get('/', function () {
return view('welcome');
})->middleware('guest');
Route::group(['middleware' => 'auth'], function()
{
Route::resource('battles', 'BattlesController'); //, ['except' => ['index']]);
Route::resource('disputes', 'DisputesController');
Route::resource('messages', 'MessagesController');
});
});
Run Code Online (Sandbox Code Playgroud)
我可以使用一些env文件加载魔法来确保应用程序加载任何一个.local.ev, .dev.env, .test.env, .production.env但我仍然必须找到一种方法来确保web中间件仅包含CSRF时不在本地或开发
最简单的方法是直接在中间件中禁用CSRF检查.为此,您需要修改App\Http\Middleware\VerifyCsrfToken类.添加以下handle()方法:
public function handle($request, \Closure $next)
{
if (in_array(env('APP_ENV'), ['local', 'dev'])) {
return $next($request);
}
return parent::handle($request, $next);
}
Run Code Online (Sandbox Code Playgroud)