Php 如何在黑洞回调中检查会话是否过期?

Php 如何在黑洞回调中检查会话是否过期?,php,security,session,cakephp,Php,Security,Session,Cakephp,我的AppController中有以下配置: 黑洞回调函数的My dev版本: public function blackHole($type) { $this->Session->setFlash( sprintf('Is session valid: %d, Security issue type: %s', $this->Session->valid(), $type)); } 出于测试目的,core.php中存

我的AppController中有以下配置:

黑洞回调函数的My dev版本:

public function blackHole($type) {
    $this->Session->setFlash(
        sprintf('Is session valid: %d, Security issue type: %s', 
             $this->Session->valid(), $type));
}
出于测试目的,core.php中存储的会话配置如下所示:

Configure::write('Session', array(
    'defaults' => 'php',
    'timeout' => 1 // 1 minute
    )
);
现在,当我登录时,转到一个带有表单的页面,并在1分钟后提交表单。我的会话按预期到期,但$this->session->valid在我的黑洞回调中返回true,顺便说一句:$type值为'csrf'。为什么Cake声明会话在无效时有效


我正在使用CakePHP v.2.4.3。

我现在使用您提供的设置和代码对其进行了测试,得到的结果是会话有效:0,安全问题类型:csrf。很难说你为什么得到1…我也不知道。在发布了这个问题之后,我想这可能仅仅是因为建立了一个新会话,但是什么时候有效的方法会返回false呢;debugself::$time;?听起来好像你在应用程序的某个地方更改了会话超时,所以请确保配置中的这些值是正确的
Configure::write('Session', array(
    'defaults' => 'php',
    'timeout' => 1 // 1 minute
    )
);