我正在收到用户的报告和投诉,他们将使用屏幕并在下次请求时立即返回登录屏幕。它不会一直发生,而是随机发生。
我正在使用CakePHP和Auth组件,除了这个问题之外,它似乎运行良好
我在Cake论坛上得到了一些反馈,这有时是由重置会话的404请求引起的,即如果你有一个损坏的图像链接或缺少的favicon文件。我打开了firebug并且没有失败的请求,因此我将此作为一种可能性进行了排除,但是用户偶尔会被注销。这似乎发生在浏览器和操作系统之间。
以下是我的配置设置摘要: Security.level =高 Session.timeout = 1200 //这意味着我的实际超时应为12,000秒 Session.save = php
我真的不知道造成这个问题的原因......
答案 0 :(得分:9)
我的安全设置也很高。当它设置为高时,它会在每个请求上重新生成会话: “如果'Security.level'设置为'high',还会在请求之间重新生成CakePHP会话ID。”
我也遇到了跨浏览器这个问题,所以我知道它不是最好的解决方案,但我只是将安全设置更改为中等,并更改了我的会话超时以反映该设置并且从那时起没有任何问题。
答案 1 :(得分:1)
我有类似的问题,我发现它是core.php文件中的user_agent检查,将其设置为false!
发生了什么事情是在页面刷新后会话ID发生了变化并且我被注销了,但是在Session对象中有一个错误说有尝试会话劫持! PR($这 - >会议);
在core.php中将此设置为false! Configure :: write('Session.checkAgent',false);
答案 2 :(得分:0)
检查您的Auth->allow
或->deny
,因为它可能是您的用户访问控制器的受限制部分或操作。
其次,检查CakePHP的特定Sanitize
,因为“高安全性”选项通常会导致麻烦。
404页重置会话?我从来没有听说过。
我认为您的问题位于身份验证例程中的某个位置。如果限制太多事情可能发生,那么一些请求星座会由于缺少属性而失败。
例如:UserOne尝试访问您的网站,他的用户名包含一些导致错误解释用户名的字符串。 该名称可以在数据库中找到,但身份验证无法将其链接到请求。
像这样的错误总是隐藏在你的代码中,你不期望它们存在。
答案 3 :(得分:0)
Security.level on high将会这样做。在core.php中将它设置为medium