我有一个CakePHP应用程序似乎在一个特定操作上终止我的会话。我有一个页面,当点击链接时,会启动iframe类型的Fancybox叠加层。在该叠加层中,用户填写并提交表单。表单正确提交,工作(包括发送电子邮件),加载成功视图并让我关闭叠加层,但是一旦我尝试访问任何其他页面,我就会被发送到登录屏幕以重新进行身份验证
我的Security.level
配置设置的值为medium
,我的Session.timeout
为120
,因此不应该是问题。任何人都知道可以创造什么呢?
感谢。
答案 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。