#mins不活动后自动注销用户

时间:2011-04-13 01:19:24

标签: php security session

我有一个客户端jquery脚本,在5分钟不活动后将用户注销。但问题是用户导航离开而没有注销会话保持活动状态。如果用户关闭浏览器不应该破坏会话,因为会话在浏览器打开或用户注销期间保持活动状态?

任何这就是我拥有的

(function($){
    $(document).bind("idle.idleTimer", function(){
        document.location = "orders.php?action=logoff&session=timeout";
    });
    //var minute = 60000; //1 minute is 60,000 miliseconds.
    var minute = 300000; //5 minutes
    var timeout = minute;
    $.idleTimer(timeout);

})(jQuery);

如果用户导航,我该如何实现服务器端?我正在考虑使用cron,但那时候这不是正确的方式(即时思考,但后来可能是错误的)

我读过这篇文章 User Inactivity Logout PHP

我不知道如果用户导航

,会话仍然会如何生效

3 个答案:

答案 0 :(得分:2)

导航必然不会使会话失效,它会关闭浏览器。

  1. 我会在服务器端实施检查。
  2. 如果会话无效,您应该发送一个400 HTTP状态代码,您的JS代码可以使用该代码来识别不再允许用户使用该资源,从而重定向到登录页面。
  3. 将Cookie到期值设置为更适合您应用的内容。

答案 1 :(得分:1)

Sarmen,最简单的方法是使用php会话垃圾收集来满足您的需求:

http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

300s将满足您的要求。

答案 2 :(得分:1)

您需要做的就是在 orders.php 文件中添加一些代码。

您需要做的是使用一些if语句检查您的$_GET操作和会话变量。

如果满足这两个要求,那么您只需要使用session_destroy();

销毁会话

如果您想使用header();

,也可以将它们重定向到任何页面