проміжне програмне забезпечення laravel

проміжне програмне забезпечення laravel

Laravel 11 має спрощене проміжне програмне забезпечення та дуже спрощену конфігурацію.

Налаштування проміжного програмного забезпечення можна зробити безпосередньо у файлі bootstrap/app.php.

У цій статті я покажу вам кілька прикладів конфігурації проміжного ПЗ Laravel, базової та розширеної конфігурації.

3 хвилин

Як налаштувати проміжне програмне забезпечення laravel

Як перенаправити користувачів і гостей на визначену адресу

Якщо ми хочемо перенаправити як автентифікованих користувачів, так і користувачів-гостей на певну адресу, ми можемо скористатися цим методом redirectTo(). Зокрема, налаштування повинні бути зроблені у файлі bootstrap/app.php, давайте розглянемо приклад, коли гості завжди перенаправляються на сторінку входу, тоді як знайомі користувачі, тобто автентифіковані користувачі, перенаправляються на робочу інформаційну панель:

->withMiddleware(function (Middleware $middleware) {
    $middleware->redirectTo(
        guests: '/admin/login',
        users: '/dashboard'
    );
})

Раніше ця конфігурація оброблялася в Authenticated.php e RedirectIfAuthenticated.php

Як перенаправити гостей на певну адресу

Щоб налаштувати певне перенаправлення для гостей, ви можете скористатися методом redirectGuestsTo(). Зокрема, налаштування повинні бути зроблені у файлі bootstrap/app.php, розглянемо приклад, коли гості завжди перенаправляються на сторінку входу:

->withMiddleware(function (Middleware $middleware) {
    $middleware->redirectGuestsTo('/admin/login');
})

У попередніх версіях це перенаправлення оброблялося у файлі проміжного програмного забезпечення. Authenticated.php.

Щоб виключити файли cookie з шифрування, проміжне програмне забезпечення di Laravel 11 надає нам метод encryptCookies(), де параметр дозволяє вказати файли cookie. Давайте подивимося на приклад:

php->withMiddleware(function (Middleware $middleware) {
    $middleware->encryptCookies(except: [
        'foo',
        'bar',
    ]);
})

У попередніх версіях ця функція була включена в EncryptCookies.php.

Виключення маршрутів із захисту CSRF

Якщо вам потрібно виключити деякі маршрути із захисту CSRF, Laravel Middleware надасть нам цей метод validateCsrfTokens(), який за належного використання дозволяє нам виключати вказані маршрути.

У наступному коді ми бачимо приклад виключення маршрутів /foo/* e /bar. Код необхідно вставити у файл bootstrap/app.php

->withMiddleware(function (Middleware $middleware) {
    $middleware->validateCsrfTokens(except: [
        '/foo/*',
        '/bar',
    ]);
})

У попередніх версіях Laravel це налаштування було зроблено у файлі VerifyCsrfToken.php.

Виключення route від URL Signature Validation

Щоб виключити маршрут (або route) із перевірки підпису URL-адреси, проміжне програмне забезпечення laravel надає нам метод validateSignatures(), розглянемо приклад:

->withMiddleware(function (Middleware $middleware) {
$middleware->validateSignatures(except: [
'/api/*',
]);
})

У попередніх версіях Laravel конфігурація Middleware оброблялася у файлі ValidateSignature.php.

Запобігання перетворенню порожніх рядків на нульові

Щоб керувати поведінкою перетворення порожніх рядків на null, використовуйте метод:convertEmptyStringsToNull()

->withMiddleware(function (Middleware $middleware) {
    $middleware->convertEmptyStringsToNull(except: [
        fn ($request) => $request->path() === 'foo/bar',
    ]);
})

Такий підхід замінює необхідність видалення з ConvertEmptyStringsToNullapp/Http/Kernel.php.

Як запобігти trimming рядки в запитах

Щоб запобігти обрізанню рядків на певних шляхах, ви можете скористатися таким методом:trimStrings()

->withMiddleware(function (Middleware $middleware) {
    $middleware->trimStrings(except: [
        '/foo',
    ]);
})

Раніше цим параметром керували в TrimStrings.php.

Розширені налаштування проміжного ПЗ

Глобальне керування стеком проміжного ПЗ

Ви можете додавати, видаляти або замінювати проміжне програмне забезпечення в глобальному стеку:

->withMiddleware(function (Middleware $middleware) {
    $middleware->prepend(SomeMiddleware::class);
    $middleware->append(AnotherMiddleware::class);
    $middleware->remove(UnwantedMiddleware::class);
    $middleware->replace(OldMiddleware::class, NewMiddleware::class);
})

Використання груп проміжного програмного забезпечення

Laravel дозволяє налаштовувати групи проміжного ПЗ:

->withMiddleware(function (Middleware $middleware) {
    $middleware->group('custom', [
        FirstMiddleware::class,
        SecondMiddleware::class,
    ]);
    
    $middleware->prependToGroup('web', NewWebMiddleware::class);
    $middleware->appendToGroup('api', NewApiMiddleware::class);
    $middleware->removeFromGroup('web', OldWebMiddleware::class);
    $middleware->replaceInGroup('api', OldApiMiddleware::class, NewApiMiddleware::class);
})

Спеціальні для API параметри проміжного програмного забезпечення

Для додатків, орієнтованих на API, ви можете використовувати методи, розроблені спеціально для API:

->withMiddleware(function (Middleware $middleware) {
    $middleware->statefulApi(); // Enables Sanctum's stateful middleware
    $middleware->throttleApi('custom_limiter', true); // Sets API rate limiting
})

Налаштування проксі та довірених хостів

Якщо ваша програма працює за проксі-сервером, ви можете налаштувати проксі та довірені хости:

->withMiddleware(function (Middleware $middleware) {
    $middleware->trustHosts(['example.com', '*.example.com']);
    $middleware->trustProxies(['192.168.1.1', '192.168.1.2']);
})

Увімкнення автентифікації сесії

Для програм, які вимагають автентифікованих сеансів у групі «web», увімкніть їх за допомогою:

->withMiddleware(function (Middleware $middleware) {
    $middleware->authenticateSessions();
})

Конфігурація проміжне програмне забезпечення di Ларавел 11 пропонує простоту та гнучкість. Якщо ви налаштовуєте шляхи, захищаєте свій API чи налаштовуєте стеки проміжного програмного забезпечення, ці параметри дозволять вам оптимізувати проміжне програмне забезпечення вашої програми відповідно до ваших потреб.

Авторе

Вам може бути цікаво…