防止Ajax呼叫使用CakePHP更新会话超时



我正在使用此类JavaScript中的一些长池:

setInterval(demo, 3000);
function demo(){
    $.get(url, params, function(data){
        //whatever
    });
}

url cakephp控制器动作的URL返回JSON。

,但是我希望我的会话仅在屏幕上的最后一个操作以来的最后20分钟。这是,忽略每30秒钟进行一次的池。否则会话将永远持续。

对此有任何解决方案?

在请求发生时将其与请求的当前时间进行比较。如果当前时间大于最后登录时间 20分钟()auth组件的方法。

请在"填充函数"之前的应用程序控制器中使用此

if(!$this->request->is('ajax')){
             $LastActivity = $this->Session->read('LastActivity');
             if ($LastActivity != '' && (time() - $LastActivity) > 1200) {//for 20 minute
                $this->Auth->logout();
                $this->redirect('/');
            }
             $this->Session->write('LastActivity', time());
            }

最新更新