在ios safari和chrome中使用客户端javascript设置安全cookie

时间:2017-07-01 11:59:35

标签: javascript ios google-chrome cookies safari

使用客户端javascript document.cookie=...设置Cookie时,secure属性强制Cookie“仅通过安全协议传输为https”see MDN spec

我在我的SPA中设置了一个cookie,客户端(即在浏览器运行的代码中),如下所示:

document.cookie = 'myCookie=myValue;expires=Sun, 31 Dec 2017 23:00:00 GMT;path=/;secure;';

使用javascript Sun, 31 Dec 2017 23:00:00 GMT方法Date获取toUTCString(),并且可能是遥远未来的任何日期(日期时有expires个问题的报告将来不到2个小时,但这不是危险的。)

这适用于macOS和Android上的Chrome,但不适用于Chrome或iOS上的Safari。在探讨之后,我认为删除secure属性可以设置cookie:

document.cookie = 'myCookie=myValue;expires=Sun, 31 Dec 2017 23:00:00 GMT;path=/;';

有没有人知道我如何在iOS上为Chrome和Safari设置我的Cookie,因为它只能通过https传输?

肯定有办法,我研究了许多SO问题无济于事。 THX

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,当我添加参数时,它就开始工作了。

document.cookie = 'myCookie=myValue;expires=Sun, 31 Dec 2017 23:00:00 GMT;domain=www.mydomain.com;path=/;secure;';

更多信息可以在这里找到:How to set cookie secure flag using javascript