FuelPHP SimpleAuth登录不在IE中工作

时间:2012-09-04 13:16:47

标签: php internet-explorer authentication fuelphp

我在FuelPHP的SimpleAuth登录时遇到了明显只有IE的问题。它在localhost上工作正常,但在我正在处理的网站的暂存版本上,Auth::check()在登录后总是失败。

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

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

我正在使用FuelPHP 1.1版

1 个答案:

答案 0 :(得分:2)

我整天都在处理同样的问题,最后,我解决了。

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

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

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