【问题标题】:auto logout user after # mins of inactivity# 分钟不活动后自动注销用户
【发布时间】:2011-08-04 08:17:50
【问题描述】:

我有一个客户端 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

如果用户离开,我看不出会话如何仍然生效

【问题讨论】:

    标签: php security session


    【解决方案1】:

    离开不一定会使会话过期,它会关闭浏览器。

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

    【讨论】:

      【解决方案2】:

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

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

      300s 将满足您的要求。

      【讨论】:

        【解决方案3】:

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

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

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

        如果您想使用header();,也可以将它们重定向到任何页面

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-27
          • 2016-04-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多