ก่อนอ่านด้านล่างให้แน่ใจว่าคุณมี@csrf
หรือ{{ csrf_field() }}
ในรูปแบบของคุณ
เช่น
<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>
ข้อความแสดงข้อผิดพลาด Session Expired หรือ 419 Page Expired เกิดขึ้นเนื่องจากมีบางแห่งที่การตรวจสอบโทเค็น csrf ของคุณล้มเหลวซึ่งหมายความว่าApp\Http\Middleware\VerifyCsrfToken::class
มิดเดิลแวร์เปิดอยู่แล้ว ในรูปแบบ@csrf
มีการเพิ่มคำสั่งใบมีดแล้วซึ่งก็น่าจะใช้ได้เช่นกัน
จากนั้นพื้นที่อื่นที่ต้องตรวจสอบคือเซสชัน csrf
ตรวจสอบโทเค็นเกี่ยวข้องโดยตรงกับเซสชันของคุณดังนั้นคุณอาจต้องการตรวจสอบว่าโปรแกรมควบคุมเซสชันของคุณใช้งานได้หรือไม่เช่น Redis ที่กำหนดค่าไม่ถูกต้องอาจทำให้เกิดปัญหา
บางทีคุณอาจลองเปลี่ยนไดรเวอร์เซสชัน / ซอฟต์แวร์จาก.env
ไฟล์ของคุณไดร์เวอร์ที่รองรับจะได้รับด้านล่าง
ไดรเวอร์เซสชันที่รองรับใน Laravel 5, Laravel 6 และ Laravel 7 (Doc Link)
file
- เซสชันจะถูกเก็บไว้ในที่จัดเก็บ / กรอบงาน / เซสชัน
cookie
- เซสชันจะถูกเก็บไว้ในคุกกี้เข้ารหัสที่ปลอดภัย
database
- เซสชันจะถูกเก็บไว้ในฐานข้อมูลเชิงสัมพันธ์
memcached
/ redis
- เซสชันจะถูกเก็บไว้ในร้านค้าที่ใช้แคชที่รวดเร็วเหล่านี้
array
- เซสชันจะถูกเก็บไว้ในอาร์เรย์ PHP และจะไม่คงอยู่
หากแบบฟอร์มของคุณใช้งานได้หลังจากเปลี่ยนโปรแกรมควบคุมเซสชันแล้วมีบางอย่างผิดปกติเกิดขึ้นกับไดรเวอร์นั้นให้ลองแก้ไขข้อผิดพลาดจากที่นั่น
สถานการณ์ที่อาจเกิดข้อผิดพลาดได้
อาจเป็นไปได้ว่าเซสชันที่ใช้ไฟล์อาจไม่ทำงานเนื่องจากปัญหาการอนุญาตกับ/storage
ไดเร็กทอรี (googling ด่วนจะดึงโซลูชันมาให้คุณ) นอกจากนี้อย่าลืมใส่ 777 สำหรับไดเร็กทอรีไม่ใช่วิธีแก้ปัญหา
ในกรณีของไดรเวอร์ฐานข้อมูลการเชื่อมต่อฐานข้อมูลของคุณอาจผิดพลาดหรือsessions
ตารางอาจไม่มีอยู่หรือกำหนดค่าไม่ถูกต้อง (ส่วนการกำหนดค่าที่ไม่ถูกต้องได้รับการยืนยันว่าเป็นปัญหาตามความคิดเห็นของ @Junaid Qadir)
redis/memcached
การกำหนดค่าไม่ถูกต้องหรือถูกจัดการโดยโค้ดอื่น ๆ ในระบบในเวลาเดียวกัน
อาจเป็นความคิดที่ดีที่จะดำเนินการ php artisan key:generate
และสร้างรหัสแอปใหม่ซึ่งจะช่วยล้างข้อมูลเซสชันได้
ล้างแคชเบราว์เซอร์ยากฉันพบว่า Chrome และ Firefox เป็นผู้ร้ายมากกว่าที่ฉันจำได้
อ่านเพิ่มเติมว่าเหตุใดคีย์แอปพลิเคชันจึงมีความสำคัญ
return;
สามารถโทรreturn redirect()->back();
. จากสิ่งที่ฉันเห็นแอพไม่มีอะไรทำหลังจากโพสต์ขอ บางทีคุณอาจเปลี่ยนเส้นทางไปยังมุมมองหลังจากดำเนินการตามคำขอ