我在这种JavaScript中使用了一些长池:
setInterval(demo, 3000);
function demo(){
$.get(url, params, function(data){
//whatever
});
}
将url
作为返回JSON的CakePHP控制器操作的URL。
但是我希望自用户上次操作屏幕以来我的会话只持续20分钟。这就是,忽略每30秒发生一次的池化。 否则会话将永远持续。
对此有任何解决方案吗?
答案 0 :(得分:2)
在请求发生时将最后一次登录时间存储在会话中,将其与请求进入时的当前时间进行比较。如果当前时间大于上次登录时间+ 20min,请拨打logout() method of the auth component。
答案 1 :(得分:1)
请在beforeFilter功能
中的app控制器中使用此功能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());
}