0

我在使用 FuelPHP 的 SimpleAuth 登录时遇到了明显的 IE 问题。它在本地主机上运行良好,但在我正在处理的站点的暂存版本上,Auth::check()登录后总是失败。

如果我转储Auth::check()登录表单验证时的内容,我会得到true,表明用户已成功登录。但是,在我将用户重定向到下一页(使用Response::redirect)后,再次Auth::check()评估为false。我认为问题与重定向没有直接关系,因为即使我不重定向用户,登录仍然失败。

由于某种原因,这个问题似乎只发生在 IE(8 和 9)中。在 Opera、Firefox 等中,用户登录和注销工作正常。正如我之前所说,它也适用于我本地开发版本的 IE。我只能认为它一定是一些cookie或会话处理问题,但我不知道问题是什么。如果有人能对此有所了解,我将不胜感激!

我正在使用 FuelPHP 1.1 版

4

1 回答 1

2

我整天都在堆积同一个问题,最后,我解决了它。

就我而言,问题出在 Safari / Mac 上,每次登录后会话都被终止。事实上,这是因为我使用 ajax 调用(在服务器上具有相对路径)来登录我的用户,显然是 ajax call 发送与 http 调用不同的用户代理,并且不匹配导致 Fuel 终止会话。

我使用的解决方案是禁用match_ua会话配置中的值。为了使事情更安全,我match_ip改为启用。我不知道这是否是一个好的解决方案。

我仍然不知道为什么用户代理会有所不同。如果有人能让我更清楚地了解这个问题,非常感谢。

于 2013-01-04T16:21:53.450 回答