У разрізі розробки веб-додатків на фреймворку Laravel виникають різноманітні проблеми, які можуть бути пов’язані з різними аспектами налаштування середовища виконання. Одна з таких проблем – відображення помилки 419 Page Expired при спробі запуску додатку на Termux. Ця помилка може стати перешкодою для успішного виконання запитів, особливо коли проект працює бездоганно на інших операційних системах, таких як Windows 10 або Ubuntu.
Причиною цієї помилки може бути спосіб, яким Termux обробляє сесії та токени CSRF. Termux, як емулятор терміналу для Android, має певні обмеження та конфігурації, які відрізняються від традиційних веб-серверів.
1 2 |
Route::post('/media/hasil',[MediaController::class,'hasil']); |
Одним із можливих рішень цієї проблеми є модифікація файлу app/Http/Controllers/MediaController.php
для ручної обробки токена CSRF у вашому методі hasil
:
1 2 3 4 5 6 7 8 9 10 11 12 |
use Illuminate\Support\Facades\Session; class MediaController extends Controller { public function hasil(Request $request) { // Ручна перевірка токена CSRF if (Session::token() !== $request->input('_token')) { abort(419); } print_r($request['mytext']); } } |
Цей код ручно перевіряє токен CSRF, наданий формою, і порівнює його з токеном, збереженим у сесії. Якщо вони не співпадають, запит припиняється зі статусом 419, запобігаючи помилці “Сторінка застаріла”.
Не забудьте імпортувати фасад Session
у верхній частині вашого файлу контролера:
1 2 |
use Illuminate\Support\Facades\Session; |
Після внесення цих змін ваш проект Laravel, що працює на Termux, повинен здатися заявки без помилки 419 Page Expired.
Переконайтеся, що тестуєте свою програму належним чином, щоб переконатися, що проблему вирішено задовільно. Успішної розробки!