1. ตรวจสอบว่าคุณใช้ SESSION_DRIVER=database

เปิดไฟล์ .env และตรวจสอบว่าใช้ Database เก็บ Session

"
SESSION_DRIVER=database
SESSION_LIFETIME=120 # 120 นาที (2 ชั่วโมง)
"

  • Laravel จะเก็บ Session ในตาราง sessions
  1. เพิ่ม Prunable ใน Model Session
    2.1. สร้าง Model Session.php (ถ้ายังไม่มี)

" php artisan make:model Session "

2.2. แก้ไขไฟล์ app/Models/Session.php
[CODE]

  1. ใช้คำสั่ง model:prune เพื่อลบ Session ที่หมดอายุ
    รันคำสั่งนี้เพื่อลบ Session ที่หมดอายุ
    " php artisan model:prune "

ผลลัพธ์:

  • Laravel จะลบ Session ที่ last_activity หมดอายุ
  • ไม่มีผลกระทบกับ Session ที่ยังใช้งานอยู่
  1. ตั้ง CRON Job หรือ Task Scheduler ให้ลบ Session อัตโนมัติ
    ตั้ง CRON Job ให้รัน model:prune ทุกชั่วโมง
    เปิด Terminal แล้วพิมพ์
    " crontab -e "
    เพิ่มบรรทัดนี้ (ให้ลบ Session ทุกชั่วโมง)เพิ่มบรรทัดนี้ (ให้ลบ Session ทุกชั่วโมง)
    " php /path/to/artisan model:prune >> /dev/null 2>&1 "

Session จะถูกลบอัตโนมัติทุกชั่วโมง

แท็ก: none

ปิดความเห็นแล้ว