2011-03-22 50 views
2

虽然问题几乎总是发生在Internet Explorer中的用户身上,但它也发生在Firefox和Chrome中几次。尽管应用程序告诉他们过期,Cookie仍被保留

的问题是哪些用户尝试登录,要么得到一个422错误,或干脆重新定向回登录屏幕。我们有一个通配符cookie,但我们最近将其切换为针对www(大约3个月前),并将之前的cookie设置为在会话结束时过期。

我们近期又切换到设计,希望它会解决这个问题,从Restful_athentication身份验证,但它似乎并不被帮助。然而,我不明白这些是如何相关的,因为他们并没有真正管理这些cookie,而是Rails所做的,他们只是把东西放在cookie中。我想,也许这个问题是宁静-auth的是把事情在变得奇怪条件下腐败,但显然不是所有

UPDATE

的情况下,我们切换到设计后,用户遇到此问题不再有422错误,但现在页面只刷新,没有任何反应。我还应该提到,当他们在他们的电子邮件中输入密码时(因为他们认为他们输入的密码是错误的),它会返回该电子邮件在系统中找不到。

当他们明确自己的饼干,特别是在IE浏览器,他们仍然会碰到同样的问题。我已经通过搜索Firefox中的单个cookie来解决问题。但是,只是简单地以通常的方式清除cookie不起作用。这个问题主要影响到IE7用户,但似乎遍布整个地图,用户在Chrome,IE8,Firefox,Safari和Safari上报告Ipad问题。

而且,这里的代码链接的session_store.rb here和这里的主人是DEF ensure_domain设置,这是here

更新2

我刚刚作出了一个非常小的调整它改变了它,所以它总是发送一个主机。我试图在每个浏览器上以各种不同的方式登录,并没有遇到任何问题。我希望这有助于

更新3(最近更新)

我们尝试了一些不同的东西组合,因此,虽然我不完全知道什么固定它,我最好的猜测是去除从4天缓存到会话结束/浏览器关闭时。虽然我并不感到关于这个问题,我个人不喜欢不必登录每一次,我宁愿这个问题固定的(这个问题没有开始发生后才我们改变了缓存长到4天。)

发送主机是一个错误,实际上让每个人的问题变得更糟,因为没有人能够登录。另一个奇怪的是,当查看创建的cookie时,有两个会话ID cookie,我猜想这会导致冲突,尤其是IE7。一些用户不得不清除他们的cookie以便仍然登录,但至少似乎大部分时间都在工作。

对任何具有类似的问题,抱歉,我不能有更多的帮助!

+0

你可以发布你的代码你如何试图过期呢? – 2potatocakes 2011-03-22 22:17:40

+0

下面是session_store.rb的代码:http://pastie.org/private/ao9nylhul1ioqjcmnyal2g,这里的主机是在def ensure_domain中设置的,这里是:http://pastie.org/private/snqidzyiktweex1bfawg – adamwstl 2011-04-04 21:18:52

+0

我们的一些用户站点具有自定义域,这是以上控制器中使用的代码。 – adamwstl 2011-04-04 21:20:57

回答

0

如果HTTPS cookie被设置为“安全”,这会不会对HTTP protocal发送出去。就好像它不存在一样。这听起来像什么可能“剥离”你的cookie。

Cookie的基础知识:如果事情是值得通过HTTPS保护,你需要事后跟踪信息(即认证令牌),最好是保持它的HTTPS的cookie只有从HTTPS访问。

这是一个cookie的安全问题,并更好地讨论:Secure cookies and mixed https/http site usage