ใน Laravel, session()->pull($key, $default) ใช้สำหรับ ดึงค่าออกจาก Session แล้วลบค่าดังกล่าวออกจาก Session ทันที

$key → ชื่อของ Session Key ที่ต้องการดึงออก
$default (optional) → ค่าเริ่มต้นที่คืนค่าถ้าหากไม่พบ Session Key
หลังจากเรียกใช้ pull() ค่านั้นจะถูก ลบออกจาก Session ทันที

  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 จะถูกลบอัตโนมัติทุกชั่วโมง

ใน NGINX, ไดเรกทอรี sites-available และ sites-enabled ใช้สำหรับจัดการ Virtual Hosts หรือ Server Blocks (เหมือนกับ Virtual Hosts ใน Apache) โดยมีความแตกต่างดังนี้:

  • sites-available/

เป็นที่เก็บไฟล์การตั้งค่า Virtual Hosts ทั้งหมดของเซิร์ฟเวอร์
ไฟล์ในนี้ ยังไม่ถูกใช้งานจริง จนกว่าจะถูกเชื่อมโยงไปยัง sites-enabled/
ช่วยให้จัดการและเก็บไฟล์คอนฟิกทั้งหมดไว้ที่เดียวได้ง่ายขึ้น

  • sites-enabled/

เป็นที่เก็บไฟล์คอนฟิกที่ NGINX จะโหลดและใช้งานจริง
โดยปกติไฟล์ในนี้เป็น Symbolic Links ที่ชี้ไปยังไฟล์ใน sites-available/
วิธีนี้ช่วยให้สามารถ เปิด/ปิด ไซต์ได้ง่ายโดยการลบหรือเพิ่มลิงก์

return redirect()->route('login')->withErrors('คุณไม่มีสิทธิ์เข้าถึงระบบ กรุณาติดต่อผู้ดูแลระบบ');

@if ($errors->any())
                         <div class="alert alert-danger">
                             <ul>
                                 @foreach ($errors->all() as $error)
                                     <li>{{ $error }}</li>
                                 @endforeach
                             </ul>
                         </div>
@endif