Отключить csrf в laravel для определенного маршрута

У меня есть платежная система, где данные передаются на сторонний сайт, а затем отсылаются обратно...

Когда данные возвращаются, он обращается к определенному URL-адресу, который позволяет сказать /ok маршрут. $_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;

    }

}

Ответ 1

Начиная с версии 5.1 промежуточное программное обеспечение Laravel VerifyCsrfToken позволяет указывать маршруты, которые исключаются из проверки CSRF. Чтобы добиться этого, вам нужно добавить маршруты в массив кроме $ в вашем классе 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/*',
  ];
}

Смотрите документы для получения дополнительной информации.