web-dev-qa-db-ja.com

特定のルートに対してlaravelでcsrfを無効にする

私はデータをサードパーティのサイトに送信し、それから引き戻す支払いシステムを持っています...

データが返されると、特定のURLにヒットし、/ ok routeと言うことができます。 $_REQUEST['transaction']

しかし、laravel=ミドルウェアのため、トークンの不一致が発生しています。サードパーティの支払いAPIがトークンを生成する方法はありません。

またはより良いオプションがありますか?

Route::get('/payment/ok',   '[email protected]');
Route::get('/payment/fail', '[email protected]');

public function Ok( Request $request )
{
    $transId = $request->get('trans_id');

    if ( isset( $transId ) )
    {

        return $transId;

    }

}
27
user796443

バージョン5.1LaravelのVerifyCsrfTokenミドルウェアでは、除外されるルートを指定できるためCSRF検証から。そのためには、ルートを$ except配列に追加する必要がありますApp\Http\Middleware\VerifyCsrfToken.phpクラス:

<?php namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
  protected $except = [
    'payment/*',
  ];
}

詳細については、 docs を参照してください。

77
jedrzej.kurylo