auto logout idle timeout using jquery php

旧巷老猫 提交于 2019-12-08 12:56:12

问题


I searched and find some examples to set idle timeout using jquery.

1 - Idle Timeout By Eric Hynds DEMO

2 - Idle Timer By paulirish

3 - Fire Event When User is Idle / DEMO HERE

4 - detect user is active or idle on web page

5 - Comet Long Polling with PHP and jQuery

6 - detacting idle timeout javascript

... And several other similar examples

Between these examples number 1 is better for i need because i need to auto logout user with any confirm alert after X minutes (logout.php or any url). but this method Not suitable for server. problem is : this jquery code send ping to any url : keepAlive.php in loop/pooling for request OK text . see firebug screen :

how to fix this ? So, other examples only printed Idle/No Idle and not work with alert confirm and auto logout ( logout.php or any url ) now really better way to choose idle timeout using jquery/Php ?

Thanks


回答1:


I use a meta refresh element in the head section to auto-direct users to the logout page after X number of seconds. Below will automatically send a user to the logout page after 20 minutes of staying on the same page:

<meta http-equiv="refresh" content = "1200; url=http://www.site.com/user/logout">

This works, is (mostly) supported cross-browser, does not rely on JavaScript being enabled and is pretty easy to implement.

If your site has users that stay on the same page for extended periods of time (with interaction taking place through JS, for instance), this solution will not work for you. It also does not allow any JS code to be run before redirection takes place.




回答2:


Here is my approach that I applied to build a simple auto-logout feature with JavaScript and jQuery. This script was constructed for use with webpages that will automatically go to the logout page when mouse movement is not detected within 25 minutes.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script type="text/javascript" language="javascript">
  var idleMax = 25; // Logout after 25 minutes of IDLE
  var idleTime = 0;

  var idleInterval = setInterval("timerIncrement()", 60000);  // 1 minute interval    
  $( "body" ).mousemove(function( event ) {
      idleTime = 0; // reset to zero
});

// count minutes
function timerIncrement() {
    idleTime = idleTime + 1;
    if (idleTime > idleMax) { 
        window.location="LogOut.php";
    }
}       
</script>



回答3:


<script>    
var idleMax = 5;  (5 min)
var idleTime = 0;
(function ($) {

    $(document).ready(function () {

        $('*').bind('mousemove keydown scroll', function () {
            idleTime = 0; 
            var idleInterval = setInterval("timerIncrement()", 60000); 
       });
        $("body").trigger("mousemove");

    });
}) (jQuery)
function timerIncrement() {
     idleTime = idleTime + 1;
     if (idleTime > idleMax) { 
         window.location="Your LOGOUT or Riderct page url here";
     }
 }
</script>


来源:https://stackoverflow.com/questions/10340160/auto-logout-idle-timeout-using-jquery-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!