Soy desarrollador web principiante. Hago mi primer proyecto en Laravel y Vue. Necesito hacer:
Intento hacerlo en una función en mi main.js:
setTimeout(function() { window.location.href = "domain.com/logout"; }, 30000);para actualizar, pero se ejecuta solo una vez, cuando recargo la página.
¿Cómo puedo hacerlo? Por favor, ayúdame :)
Puede usar los siguientes eventos mousemove , mousedown , keypress y touchdown para determinar si un usuario está activo. Necesitará funciones para iniciar el temporizador y restablecerlo. El reinicio se utilizará para los eventos antes mencionados.
En su main.js, haga esto:
const timeoutInMS = 180000; // 3 minutes -> 3 * 60 * 1000 let timeoutId; function handleInactive() { // Here you want to logout a user and/or ping your token } function startTimer() { // setTimeout returns an ID (can be used to start or clear a timer) timeoutId = setTimeout(handleInactive, timeoutInMS); } function resetTimer() { clearTimeout(timeoutId); startTimer(); } function setupTimers () { document.addEventListener("keypress", resetTimer, false); document.addEventListener("mousemove", resetTimer, false); document.addEventListener("mousedown", resetTimer, false); document.addEventListener("touchmove", resetTimer, false); startTimer(); } Luego llame a setupTimers en la carga de la página.
NOTA: El código anterior es una forma de detectar si un usuario está inactivo.