Joomla 2.5 会话计时器 - 当会话扩展时

Joomla 2.5 session timer - when session is extending?

本文关键字:会话 扩展 计时器 Joomla      更新时间:2023-09-26

我尝试为前端用户编写Joomla会话倒计时。但我无法识别会话何时延长。

我现在的代码

<body data-sesja="<?php echo JFactory::getSession()->getExpire() ; ?>">

和 JS

//getting session time
var licznik = $('body').data('sesja');
//PROBLEM IS HERE - becouse not all events extenting the session time
$('body').on('mousedown keyup', function(){
     licznik = $('body').data('sesja');
});
//creating counter object
var licznikObj = window.setInterval(function() {
    licznik--;
    $('.licznik').text(licznik);
    if (licznik == 0) {
         window.clearInterval(licznikObj);
         $('.licznik-info, .licznik').each(function(){
             $(this).remove();
         });
         $(".licznik-msg").text("Twoja sesja wygasła! Zaloguj ponownie.");
    }
 }, 1000);

所以我的问题是:女巫事件延长了 Joomla 2.5 会话时间?

因为我不完全是你想做的,但我将简要描述会话在 Joomla 中的工作方式。

默认会话是在用户第一次遇到网站时创建的。

当用户登录时,会话与其用户记录耦合,以便框架将在以下请求中自动进行身份验证。这些会话 Cookie 通常发送到没有过期时间的客户端,因此在浏览器会话结束之前有效(在客户端)。

如果用户勾选"记住我"框,则会根据您的配置设置显式过期时间,通常是未来几天。

另一方面,在

服务器端,无论客户端存储什么,都会存储过期时间。默认会话长度为 15 分钟(900 秒)。

如果用户在此期间发出另一个请求,会话将延长另一个时间段(从当前请求的时间)。

有一个行为声明 ( JHtml::_('behavior.keepalive'); ),它生成一个脚本,通过向服务器重复发送 AJAX 请求来防止会话过期,通常是在会话设置为过期前 1 分钟。

此行为在前端中经常使用。

我希望这将帮助您获得所需的结果。我无法查看我不拥有的商业扩展的特定视图的行为。