【问题标题】:Cookie persistence in iOS Safari/ChromeiOS Safari/Chrome 中的 Cookie 持久性
【发布时间】:2017-10-16 16:10:47
【问题描述】:

当我在 iOS Safari(和 Chrome)上关闭并重新打开浏览器时,我的持久性 cookie 将被删除。我在 iOS 11 上,但也在 iOS10/9 上进行了测试。 cookie 在 Android 和桌面上正确保留。奇怪的是,它适用于 iOS 上的 Firefox。

我在这里错过了什么?

这是我设置 cookie 和过期日期的 javascript 代码:

  setCookie = function(cname, cvalue, exdays) {
     var d = new Date();
     d.setTime(d.getTime() + (exdays*24*60*60*1000));
     var expires = "expires="+ d.toUTCString();
     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
  }

  setCookie("test", "random test value", 365);

【问题讨论】:

    标签: javascript ios google-chrome cookies safari


    【解决方案1】:

    我刚刚遇到了这个问题,在生产服务器上进行测试时,cookie 在 Android/桌面设备上是持久的,但在 iOS11 上却不是。解决方案似乎是定义 cookie 的域:

      setCookie = function(cname, cvalue, exdays) {
         var d = new Date();
         d.setTime(d.getTime() + (exdays*24*60*60*1000));
         var expires = "expires="+ d.toUTCString();
         document.cookie = cname + "=" + cvalue + ";" + expires + ";domain=" + window.location.hostname + ";path=/";
      }
    
      setCookie("test", "random test value", 365);
    

    iOS11 在接受哪些 cookie 方面似乎更加严格。我可以找到很多关于它对隐私更好的营销宣传,但很少有关于如何根据新限制正确实施事物(例如持久登录/SSO)的技术细节。谁能推荐一些有用的链接?

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 2016-04-24
      • 2013-03-06
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      相关资源
      最近更新 更多