2017-09-07 5 views
2

リクエストヘッダーに基づいて1つ以上のミドルウェア(グローバルに登録されているかルートに登録されている)を無効にしたいと思います。Laravel、グローバル/ルートのミドルウェアをプログラムで無効にすることはできますか?

私は私のAPIをテストするために郵便配達を使用しますがAUTHなどと同様、CSRF保護の問題に出くわすよ

だから、理想的に(おそらく、サービスプロバイダで?)ポストマントークンであった場合、私はチェックしたいです要求と共に環境などと共に設定し、特定のミドルウェアが実行されないようにします。

これまで誰もこのようなことをしたことがありますか?

ありがとうございます!

+0

テスト中は不要なミドルウェアにコメントするだけです。私は、これを行うために必要な時間と労力が、デバッグのためだけに価値があるとは思いません。 (個々のミドルウェアを修正するか、郵便配達員を使用する場合はリクエストを「修正」するミドルウェアを追加する必要があります) – apokryfos

+0

最初は時間がかかるかもしれませんが、理想的には追加できますいくつかのAPIベースのプロジェクトでは、同僚がコードベースを調整したり、ミドルウェアからコメントアウトしたりすることなく、共有されたPostmanコレクションをテストできるようになりました。 – scrwdnet

+0

私が見る限りでは、これには何も表示されていません。郵便配達要求のための新しいミドルウェアグループを作成し、ヘッダーが設定されている場合はそのルートをそのグループに登録する 'RouteServiceProvider :: map()個々のルート上のミドルウェアには影響しません。カーネル内で静的に宣言されているため、それらを簡単に交換することはできません。異なるソリューションを試す必要があります。 – apokryfos

答えて

0

VerifyCsrfToken.phpファイルには、csrfで保護する必要のないルートを入力できるような配列があります。たとえば、

protected $except = [ 
    'api/*', 
]; 
+0

これまではこれを見てきましたが、リクエストの特定の条件に基づいてプログラムでディセーブルにしたり、複数のミドルウェアを無効にすることはできません。 – scrwdnet

関連する問題