<p>使用cakephp时碰到的一个Session问题,当前端频发的发送http请求时,Session竟然会丢失,导致页面要频繁的登录(这边是用Session来做的身份验证)</p>
<h3>1:使用场景</h3>
<pre><code>每一次http请求都会进行一次身份验证,验证不通过->登录,当前端多次发送ajax请求,Session竟然有时会获取不到,刷新后又恢复正常
</code></pre>
<h3>2:在文档中发现</h3>
<pre><code>当应用程序使用 SSL协议时,CakePHP 默认设置 session.cookie_secure 为 true。如 果应用程序同时使用 SSL 和非 SSL 协议,你也许会有会话丢失的问题。
</code></pre>
<h3>3:解决</h3>
<pre><code>在app>Config>core.php中添加代码(不能和原有代码合并写,新增下面代码)
Configure::write('Session', array(
'defaults' => 'php',
'ini' => array(
'session.cookie_secure' => false
)
));
或者把默认的Session中 autoRegenerate注释掉
Configure::write('Session', array(
'defaults' => 'php',
'timeout'=>1440, // 过期时间 24小时
'cookieTimeout'=>1440, // 过期时间 24小时
//'autoRegenerate'=>true // 重新生成会话
));
</code></pre>