Przed przeczytaniem poniżej upewnij się, @csrfczy {{ csrf_field() }}w swojej formie
jak
<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>
W larvel pojawia się komunikat o błędzie Session Expired lub 419 Page Expired, ponieważ gdzieś weryfikacja tokenu csrf kończy się niepowodzeniem, co oznacza, że App\Http\Middleware\VerifyCsrfToken::classoprogramowanie pośredniczące jest już włączone. W formie @csrfdyrektywa ostrza została już dodana, co również powinno być w porządku.
Następnie kolejnym obszarem do sprawdzenia jest sesja. csrfWeryfikacja tokena jest bezpośrednio związany z sesją, więc warto sprawdzić, czy kierowca sesja działa, czy nie, taki jak niepoprawnie skonfigurowanego Redis może powodować problem.
Może możesz spróbować zmienić sterownik / oprogramowanie sesji z .envpliku, obsługiwane sterowniki są podane poniżej
Obsługiwane sterowniki sesji w Laravel 5, Laravel 6 i Laravel 7 (Doc Link)
file - sesje są przechowywane w pamięci / ramach / sesjach.
cookie - sesje są przechowywane w bezpiecznych, zaszyfrowanych plikach cookie.
database - sesje są przechowywane w relacyjnej bazie danych.
memcached/ redis- sesje są przechowywane w jednym z tych szybkich sklepów opartych na pamięci podręcznej.
array - sesje są przechowywane w tablicy PHP i nie będą utrwalane.
Jeśli twój formularz działa po przełączeniu sterownika sesji, oznacza to, że coś jest nie tak z tym konkretnym sterownikiem, spróbuj naprawić błąd z tego miejsca.
Możliwe scenariusze podatne na błędy
Prawdopodobnie sesje oparte na plikach mogą nie działać z powodu problemów z uprawnieniami do /storagekatalogu (szybkie wyszukiwanie w Google przyniesie Ci rozwiązanie), pamiętaj również, że umieszczenie 777 dla katalogu nigdy nie jest rozwiązaniem.
W przypadku sterownika bazy danych połączenie z bazą danych może być nieprawidłowe lub sessionstabela może nie istnieć lub być nieprawidłowo skonfigurowana (potwierdzono, że błędna część konfiguracji jest problemem zgodnie z komentarzem @Junaid Qadir).
redis/memcached konfiguracja jest nieprawidłowa lub jest manipulowana przez inny fragment kodu w systemie w tym samym czasie.
Dobrym pomysłem może być wykonanie php artisan key:generatei wygenerowanie nowego klucza aplikacji, który z kolei opróżni dane sesji.
Wyczyść pamięć podręczną przeglądarki TRUDNE. Uważam, że Chrome i Firefox są winowajcami bardziej, niż pamiętam.
Przeczytaj więcej o tym, dlaczego klucze aplikacji są ważne
return;ciebie możesz zadzwonićreturn redirect()->back();. Z tego, co widzę, aplikacja nie ma nic do zrobienia po wysłaniu żądania. Może po przetworzeniu żądania możesz przekierować go do widoku.