CakePHP在切换浏览器模式时Session丢失

  使用CakePHP搭建的电商系统,支付接口使用的银联支付。最近在测试的时候发现一个问题,登录用户选择商品进行支付,付款成功后点击“返回商户”按钮,页面返回后用户的登录状态丢失。经过多次测试,发现此问题只出现在双核浏览器中,以360浏览器为例,用户在选择商品的时候,默认使用的是浏览器的极速模式,但是银联在进入银行支付页面的时候,有时候会切换成IE的兼容模式,而CakePHP默认的设置会检查各个请求之间的用户是否改变,模式切换了让CakePHP认为用户发生改变,从而导致Session丢失。

  解决的办法是关闭CakePHP此项检查的设置,具体的文件为app\config下的core.php,将Session.checkAgent修改为false,代码如下:

 

Configure::write( 'Session.checkAgent', false );
posted @ 2014-11-06 10:36  pallee  阅读(354)  评论(0编辑  收藏  举报