2016-05-14 4 views
2

私のアプリケーションでは、ラップトップで実行しているときにCSRFを無効にしたいAPP_ENV=localおよび開発時にAPP_ENV=dev。 routes.phpとウェブミドルウェアのどちらで実行するのか、私の頭を理解できません。ここで私はどちらか.local.ev, .dev.env, .test.env, .production.envのアプリの負荷を確実にするために、いくつかのenvファイルロードの魔法を使用することができますが、私はまだウェブミドルウェアだけでないときは、ローカルでCSRFが含まれていることを確認する方法を見つける必要があります私のroutes.phpのLaravelの環境に基づくCSRFミドルウェア

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'); 
    }); 

}); 

ですかdev

答えて

5

最も簡単な方法は、ミドルウェアで直接CSRFチェックを無効にすることです。これを行うには、App \ Http \ Middleware \ VerifyCsrfTokenクラスを変更する必要があります。そこに次ハンドルを追加します()方法:

public function handle($request, \Closure $next) 
{ 
    if (in_array(env('APP_ENV'), ['local', 'dev'])) { 
     return $next($request); 
    } 

    return parent::handle($request, $next); 
} 
+0

は良いアイデアのように見えるが、それは 'の行にある場合(in_array(ENV( 'APP_ENV')、[ 'ローカル'、「DEVパースエラーを与えます']){' –

関連する問題