Чтобы исключить защиту 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);
});