메이크업 아래 읽기 전에 반드시 당신은 @csrf
나 {{ csrf_field() }}
양식에
같은
<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>
larvel의 Session Expired 또는 419 Page Expired 오류 메시지는 csrf 토큰 확인이 실패하여 App\Http\Middleware\VerifyCsrfToken::class
미들웨어가 이미 켜져 있음을 의미하기 때문에 나타납니다. 양식에서 @csrf
블레이드 지시문이 이미 추가되었으므로 괜찮습니다.
확인해야 할 다른 영역은 세션입니다. csrf
당신이 당신의 세션 드라이버에 문제가 발생할 수 있습니다 이러한 잘못 구성된 레디 스로, 작동 여부를 확인 할 수 있습니다 그래서 토큰 검증이 직접 세션으로 참여하고있다.
.env
파일 에서 세션 드라이버 / 소프트웨어를 전환 해 볼 수 있습니다 . 지원되는 드라이버는 다음과 같습니다.
Laravel 5, Laravel 6 및 Laravel 7에서 지원되는 세션 드라이버 (Doc Link)
file
-세션은 스토리지 / 프레임 워크 / 세션에 저장됩니다.
cookie
-세션은 안전하고 암호화 된 쿠키에 저장됩니다.
database
-세션은 관계형 데이터베이스에 저장됩니다.
memcached
/ redis
-세션은 이러한 빠른 캐시 기반 저장소 중 하나에 저장됩니다.
array
-세션은 PHP 배열에 저장되며 유지되지 않습니다.
세션 드라이버를 전환 한 후 양식이 작동하는 경우 해당 특정 드라이버에 문제가있는 것입니다. 거기에서 오류를 수정하십시오.
오류가 발생하기 쉬운 시나리오
아마도 파일 기반 세션은 /storage
디렉토리 에 대한 권한 문제로 인해 작동하지 않을 수 있습니다 (빠른 인터넷 검색으로 솔루션을 가져올 수 있음). 또한 디렉토리에 777을 넣는 것은 결코 해결책이 아닙니다.
데이터베이스 드라이버의 경우 DB 연결이 잘못되었거나 sessions
테이블이 없거나 잘못 구성되었을 수 있습니다 (잘못된 구성 부분은 @Junaid Qadir의 의견에 따라 문제로 확인 됨).
redis/memcached
구성이 잘못되었거나 시스템의 다른 코드에 의해 동시에 조작되고 있습니다.
php artisan key:generate
세션 데이터를 플러시하는 새 앱 키 를 실행 하고 생성 하는 것이 좋습니다 .
Clear Browser Cache HARD , 크롬과 파이어 폭스가 제가 기억할 수있는 것보다 더 많은 범인이라는 것을 알았습니다.
애플리케이션 키가 중요한 이유에 대해 자세히 알아보기
return;
당신을 호출 할 수 있습니다return redirect()->back();
. 내가 볼 수 있듯이 앱은 게시 요청 후에 할 일이 없습니다. 요청을 처리 한 후 뷰로 리디렉션 할 수 있습니다.