我有一个登录屏幕,我强制使用 ssl,所以像这样: https ://www.foobar.com/login 然后在他们登录后,他们被移动到主页: https ://www.foobar.com/dashbaord
但是,我想在登录后将人们从 SSL 中移出(以节省 CPU),因此在检查他们实际上已登录https://www.foobar.com/dashbaord之后,我将他们移至 http:// www.foobar.com/dashbaord
好吧,这似乎总是会清除会话变量,因为当页面再次运行时,它会确认它们已登录(就像所有页面一样)并且会话似乎不存在,因此它将它们移动到登录屏幕。
奇数/发现:
- 项目清单
- 第二次登录总是有效,并且很高兴让我访问http://www.foobar.com/dashbaord
- 它在第一次登录时成功创建了一个 cookie
- 如果我登录两次,然后注销,然后再次登录,我不需要两次登录(我似乎已经将此追溯到 cookie 存在的事实)。如果我删除 cookie,我将返回两次登录。
- 第二次登录后,我可以从非 ssl 从 ssl 移动,并且会话仍然存在。
- 在第一次登录时,移动到非 ssl 站点会完全清除会话,手动移动回 ssl 站点仍然会迫使我再次登录。
- 第二次登录使用与第一次完全相同的机制,通过 ssl
我尝试了什么:
- 使用 Cake 的 security.level 和 session.checkagent 设置 - 没有
- 让蛋糕将会话存储在数据库中(而不是文件系统) - 没有
- 在 XP 机器上测试 FF、IE、Chrome。
所以我觉得这与正在创建但未被读取的 cookie 有关。
环境: 1. Debian 2. Apache 2 3. Mysql 4 4. PHP 5 5. CakePHP 6. 会话保存 PHP 默认为文件