【发布时间】:2016-09-28 12:23:33
【问题描述】:
我们正在尝试设置一个 cookie 以使用用户自动登录。
我们正在使用带有 Reactjs + Redux + JavaScript (ES6) 的 SPA,
为了设置 cookie,我们创建了一个名为 CookieHandler 的组件,其中包含设置 cookie 函数
setCookie(token = '', expirationDate = '1970-01-01T00:00:00') {
const expDay = new Date(expirationDate);
document.cookie = 'userToken=' + token + '; expires=' + expDay.toUTCString() + '; path=/;';
}
我们还确保只在需要时调用它。
这适用于 Internet Explorer 中的所有浏览器。
问题是 IE 在当前会话中设置了令牌,但是一旦我们关闭窗口并重新打开它,cookie 就消失了,我还尝试使用 toGMTString(已弃用)而不是toUTCString 但还是不行
额外
我们从后端获取userToken和expirationDate,其格式与setCookie函数中的默认值相同
即使我们关闭窗口,在所有其他浏览器中也能正常工作。
【问题讨论】:
-
您不是将到期日期设置为 1970 年吗? (即过去)
-
不,我们从后端传递的日期为 6 个月,当我们调用函数时,类似于“2017-03-28T00:00:00”
-
你能解决这个问题吗?
标签: javascript internet-explorer reactjs cookies ecmascript-6