กำหนดเวลาออกจากระบบอัตโนมัติหากไม่มีการเคลื่อนไหวใด ๆ

 


  • INACTIVITY_TIME_LIMIT  กำหนดเป็นเวลา 1 ชั่วโมง (ในหน่วยมิลลิวินาที)
  • resetInactivityTimer  ฟังก์ชันนี้จะถูกเรียกทุกครั้งที่ผู้ใช้มีการเคลื่อนไหว เช่น การคลิก, การเลื่อนเมาส์, การพิมพ์บนคีย์บอร์ด โดยฟังก์ชันนี้จะรีเซ็ตตัวจับเวลาทุกครั้ง
  • logoutUser  ฟังก์ชันนี้จะถูกเรียกเมื่อไม่มีการเคลื่อนไหวครบ 1 ชั่วโมง และจะทำการออกจากระบบโดยเปลี่ยน URL ไปยังหน้าล็อกอินหรือหน้าที่ต้องการ


  // กำหนดเวลาไม่เคลื่อนไหว (ในมิลลิวินาที, 1 ชั่วโมง = 60 นาที * 60 วินาที * 1000 มิลลิวินาที)
const INACTIVITY_TIME_LIMIT = 60 * 60 * 1000; // 1 ชั่วโมง
  let inactivityTimer;

// ฟังก์ชันที่ใช้ในการรีเซ็ตตัวจับเวลาหากมีการเคลื่อนไหว
  function resetInactivityTimer() {
      clearTimeout(inactivityTimer);
      inactivityTimer = setTimeout(logoutUser, INACTIVITY_TIME_LIMIT);
  }

// ฟังก์ชันออกจากระบบ
  function logoutUser() {
alert('ไม่มีการใช้งานนานเกินไป กำลังออกจากระบบ...'); // ที่นี่คุณสามารถเพิ่มโค้ดเพื่อออกจากระบบ เช่น เปลี่ยนหน้าไปยังหน้าล็อกอิน
      window.location.href = '/logout';
  }

  document.addEventListener('DOMContentLoaded', function() {
    window.addEventListener('mousemove', resetInactivityTimer);
    window.addEventListener('keypress', resetInactivityTimer);
    window.addEventListener('click', resetInactivityTimer);
    window.addEventListener('scroll', resetInactivityTimer);
   
    // เริ่มจับเวลาเมื่อหน้าโหลดเสร็จ
    resetInactivityTimer();
  });

แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า