templates/includes/session_timeout.js.twig line 1

  1. <script>
  2. document.addEventListener('DOMContentLoaded', () => {
  3.     // Si redirection déjà faite, afficher le pop-up
  4.     const logoutReason = sessionStorage.getItem("logout_reason");
  5.     if (logoutReason === "timeout") {
  6.         alert("Vous avez été déconnecté suite à une trop longue inactivité sur le site.");
  7.         sessionStorage.removeItem("logout_reason");
  8.     }
  9.     // Heartbeat toutes les 60s
  10.     setInterval(() => {
  11.         fetch(window.location.href, { method: 'HEAD' })
  12.             .then(res => {
  13.                 if (res.headers.get("X-Logout-Reason") === "timeout") {
  14.                     sessionStorage.setItem("logout_reason", "timeout");
  15.                     window.location.href = "{{ path('landing') }}";
  16.                 }
  17.             })
  18.             .catch(console.error);
  19.     }, 60000); // 60 secondes
  20. });
  21. </script>