CakePHP在切换浏览器模式时Session丢失
使用CakePHP搭建的电商系统,支付接口使用的银联支付。最近在测试的时候发现一个问题,登录用户选择商品进行支付,付款成功后点击“返回商户”按钮,页面返回后用户的登录状态丢失。经过多次测试,发现此问题只出现在双核浏览器中,以360浏览器为例,用户在选择商品的时候,默认使用的是浏览器的极速模式,但是银联在进入银行支付页面的时候,有时候会切换成IE的兼容模式,而CakePHP默认的设置会检查各个请求之间的用户是否改变,模式切换了让CakePHP认为用户发生改变,从而导致Session丢失。
解决的办法是关闭CakePHP此项检查的设置,具体的文件为app\config下的core.php,将Session.checkAgent修改为false,代码如下:
Configure::write( 'Session.checkAgent', false );
博客声明:
本博客中的所有文章,除标题中注明“转载”字样外,其余所有文章均为本人原创或在查阅资料后总结完成,引用非转载文章时请注明此声明。—— 博客园-pallee(http://www.cnblogs.com/pallee)