使用CakePHP防止ajax调用更新会话超时
我在JavaScript中使用了这种长池:使用CakePHP防止ajax调用更新会话超时,cakephp,cakephp-2.7,Cakephp,Cakephp 2.7,我在JavaScript中使用了这种长池: setInterval(demo, 3000); function demo(){ $.get(url, params, function(data){ //whatever }); } 是返回JSON的CakePHP控制器操作的url 但是我希望我的会话只持续20分钟,因为用户在屏幕上的最后一个操作。这就是,忽略每30秒发生一次的池。 否则,会议将永远持续下去 有什么解决办法吗?存储请求发生时会话中的最后登录时间,
setInterval(demo, 3000);
function demo(){
$.get(url, params, function(data){
//whatever
});
}
是返回JSON的CakePHP控制器操作的url
但是我希望我的会话只持续20分钟,因为用户在屏幕上的最后一个操作。这就是,忽略每30秒发生一次的池。
否则,会议将永远持续下去
有什么解决办法吗?存储请求发生时会话中的最后登录时间,并将其与请求发出时的当前时间进行比较。如果当前时间大于上次登录时间+20分钟,请调用。请在beforeFilter功能中使用此应用程序内控制器
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());
}
使用Cake3或Cake2标签。在两个版本中都添加一个问题没有多大意义。这是3.x版的,但在2.x版中是相同的概念,所以。。。