当前位置:编程学堂 > IE、Firefox下Cookie兼容性问题

IE、Firefox下Cookie兼容性问题

  • 发布:2023-10-01 14:51

2019年独角兽企业Python工程师招聘标准>>>

IEFirefox

下的 Cookie 存在兼容性问题

此帖子是"根据二级域名CookieS 分享SO》后来发现的问题,测试结果如下:用Firefox可以登录,但是使用IE后,有的可以登录,有的不能登录。最初怀疑是IECookie功能没有开启。这个原因在测试结束时就被排除了。

由于SSO是通过Cookie实现的,因此认证必须保存在 中的 Cookie,保存 Cookie 文件本地缓存 目录(firefoxCookie已加密,无法找到 Cookie文件)但奇怪的是,IE登录后,生成的Cookie文件在缓存目录中根本找不到。这就是无法登录的根本原因。

?前者不可能发生。如果没有生成
Cookie,那为什么有些浏览器可以做到,firefox都可以做到,我们只能怀疑第二个原因,Cookie 是被IE自动销毁。 IE根据Cookie的生命周期销毁Cookie,例如Cookie 2009-生成01-01 01:00:01,有效时间为5小时,则2009-01-01 06:00:01,之后 IE将销毁这个 Cookie 文件。对于IECookie的有效时间段理解为客户端时间和服务器时间之间的间隔,而对于FireFox 有效期Cookie完全由服务器时间决定。 Firefoxcookie不依赖于服务器时间。可以看到 FireFox 已满 考虑到服务器和客户端的时间差。

我立即检查系统时间,发现系统时间和服务器时间没有任何区别。我有点困惑的是还有另一个时区(时区)影响了时间。 果然找到原因了,时区设置错误。不正确的时区设置也会影响IE对于Cookie的生命周期的计算,因为IECookie 的生命周期为根据GMT计算

原因总结:IE未能成功登录是因为没有设置正确的时区和时间,导致IE错误,认证信息将得救了。 Cookie 文件被自动销毁了,所以我无法登录。

我这里发现的问题是ie没有把cookie与下一个跳转域名放在一起,我不知道它是什么饼干 文件是自动销毁还是不支持?

终于解决了。原因是IEcookie的过期时间不是GMT的格式,请使用

lua更改cookie 的过期时间为 [Sun, 15-Oct-2017 07:38:07 GMT]。就是这样。之前改为。 (格式错误),不对,过期时间将使用lua以动态生成的方式写入。

​​ ------------------2015-10-19

今天终于用了lua来动态指定cookie的过期时间。一开始我的想法不对,不太理解lua,下面介绍两个想法。

1,使用luawww.sychzs.cn函数拼接成GMT的格式:

下面的逻辑有问题,就是当23: 01~23:59,加一小时,就会变成24:01 ~ 24:59GMT的时间格式有问题。不知道这个小时内是否还正常,所以改用第二种方法。

位置 ~ ^/test/ {

                           content_by_lua '

| ?

? “}

                       ';

}

2, os.time 获取当前时间戳,并使用 www.sychzs.cn 格式化输出 :

位置 ~ ^/test/ {

content_by_lua '

      当地时间1 = os.time()

时间1 = 时间1 + 86400

     expiretime = www.sychzs.cn("%a,%d-%b-%Y %H:%M:%S GMT",time1)

ngx.header["Set-Cookie"] = {"dlc=" .. ngx.var.remote_addr ..";expires="..expiretime ..";domain=.www.sychzs.cn;path=/ “}

';

}

转载于:https://www.sychzs.cn/fufangchun/blog/517910

相关文章

热门推荐