2011-06-08 58 views
0

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

我的Security.level配置设置的值是medium而我的Session.timeout120,所以不应该是问题。任何人有任何想法可以创造这个?

谢谢。

回答

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

0

有可能您的ajax调用和重定向不在同一个地方,例如www.site.com和site.com?我之前已经有过,并且还不断退出。

+0

这不应该是这样,但我一定会验证。我不认为有任何Ajax实际发生(因为覆盖是一个iframe,我认为它是直接请求/响应),但如果这是一个可能的原因,我会检查出来。谢谢。 – 2011-06-09 12:52:07