Исключить защиту CSRF в маршрутах Laravel

Чтобы исключить защиту CSRF (подделка межсайтовых запросов) для определенного маршрута в Laravel, вы можете использовать один из следующих методов:

Метод 1: используйте свойство кромев промежуточном программном обеспечении VerifyCsrfToken.

  • Откройте класс App\Http\Middleware\VerifyCsrfToken.
  • Добавьте URI маршрута, который вы хотите исключить из защиты CSRF, в свойство $Exception.
protected $except = [
    'your-route-uri',
];

Метод 2: переопределить метод verifyCsrfTokenв вашем контроллере.

  • Создайте новый контроллер или используйте существующий.
  • Добавьте следующий код в класс контроллера:
public function __construct()
{
    $this->middleware(function ($request, $next) {
        if ($request->is('your-route-uri')) {
            return $next($request)->withoutMiddleware(\App\Http\Middleware\VerifyCsrfToken::class);
        }
        return $next($request);
    });
}

Метод 3. Используйте группу промежуточного программного обеспечения csrfв объявлении маршрута.

  • Откройте файл routes/web.php.
  • Добавьте свой маршрут в группу промежуточного программного обеспечения web, которая включает защиту CSRF, и исключите его, обернув его в метод withoutMiddleware.
Route::middleware(['web', 'csrf'])->group(function () {
    // CSRF protected routes
    // Excluded route from CSRF protection
    Route::post('your-route-uri', function () {
        //
    })->withoutMiddleware(\App\Http\Middleware\VerifyCsrfToken::class);
});