【问题标题】:How to retrieve logout time如何检索注销时间
【发布时间】:2011-07-01 06:43:39
【问题描述】:

我已经构建了一个简单的用户身份验证的简单 cakephp 应用程序。有用。当用户长时间空闲时,我遇到问题,应用程序会注销用户。用户应重新登录以在应用程序上执行操作。

我的问题是无论如何我都可以节省用户退出的时间。

感谢您的帮助。

谢谢。

【问题讨论】:

  • 如何注销用户?这只是一个超时,你只能近似注销时间,$time_lastActivity + $timeout

标签: php session authentication cakephp logout


【解决方案1】:

伊万卡,

Thariama 写的似乎很合理。不过,如果您需要向其他人显示用户状态的功能,恕我直言,您必须使用 cron 作业和蛋糕壳。

你需要:

  1. Thariama 的时间戳建议
  2. cake shell + cron 作业检查每个登录的用户。一旦现在 - lastActionTimeStamp > maxIdleTime,注销用户并保留时间戳。

添加第二点的好处是,其他用户不会看到已注销的点存在/活动,因为如果您坚持使用 1. 可能会出现这种情况。

根据用户群的大小,您可以设置检查间隔。 另一种方法可能是实现某种客户端计时器 (JS/AJAX) 来触发注销,这在本质上可能不可靠,但应该更容易实现。

我的 2 美分。

【讨论】:

    【解决方案2】:

    在您的服务器/应用程序上会有一个配置设置,用于定义用户退出后的空闲时间跨度。有了这些知识(我相信你知道去哪里看),你就可以做以下事情了

    $time_span_to_logout_user = 600; // example 10 minutes
    

    每次用户登录并请求您的网站页面之一时,您只需将此时间戳存储到数据库中。

    要了解注销时间,您只需从数据库中获取此时间戳并添加$time_span_to_logout_user -> 这是用户注销时间。

    【讨论】:

      【解决方案3】:

      你可以在 app/config/core.php 上设置:

      Configure::write('Session.timeout', '120');
      

      Documentation 解释这个变量取决于安全级别。

      【讨论】:

        【解决方案4】:

        是的,写你自己的session handler 并使用 gc 记录时间并销毁 fns

        【讨论】:

        • 蛋糕已经有了就不用自己写了,可以扩展
        猜你喜欢
        • 1970-01-01
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 2018-02-23
        • 2020-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多