CakePHP过早地将我记录下来

时间:2011-06-08 23:16:18

标签: cakephp cakephp-1.3 fancybox

我有一个CakePHP应用程序似乎在一个特定操作上终止我的会话。我有一个页面,当点击链接时,会启动iframe类型的Fancybox叠加层。在该叠加层中,用户填写并提交表单。表单正确提交,工作(包括发送电子邮件),加载成功视图并让我关闭叠加层,但是一旦我尝试访问任何其他页面,我就会被发送到登录屏幕以重新进行身份验证

我的Security.level配置设置的值为medium,我的Session.timeout120,因此不应该是问题。任何人都知道可以创造什么呢?

感谢。

2 个答案:

答案 0 :(得分:0)

您的ajax呼叫和重定向可能不会到达同一个地方,例如www.site.com和site.com吗?我之前已经有了这个,并且还一直在退出。

答案 1 :(得分:0)

所以这跟追踪并不好玩,但是我是个白痴。代码中埋藏了一些早期代码,用于刷新经过身份验证的会话中的用户数据,这些数据没有按照应该执行的操作进行。它试图直接更新整个Auth.User对象(例如$this->Session->write( 'Auth', $user )),而不是调用login方法。

Session::write()代码更改为$this->Auth->login( $user )后,所有内容都很顺利。关于此主题的一些参考资料http://milesj.me/blog/read/31/Refreshing-The-Auths-Session