简体   繁体   中英

Internet Explorer: expiration date for cookies doesn't work

We are trying to set a cookie in order to use user auto login.

We are using an SPA with Reactjs + Redux + JavaScript (ES6),
To set the cookie we have created a component called CookieHandler which contains the set cookie function

setCookie(token = '', expirationDate = '1970-01-01T00:00:00') {
  const expDay = new Date(expirationDate);

  document.cookie = 'userToken=' + token + '; expires=' + expDay.toUTCString() + '; path=/;';
}

We also made sure that it's called once, just when is needed.
This works for all browsers expect in Internet explorer.

The problem is that IE sets the token in the current session but once we close the window and re-open it the cookie is gone, I also have tried to use toGMTString (which is deprecated) instead of toUTCString but still not working

Extra

We get the userToken and expirationDate from the back-end which its format is the same as the default value in the setCookie function

In all the other browsers works as expected even though we close the window.

Here I found some info that IE doesn't like "=" sign. Maybe it's the problem?

Don't use "=" signs in your cookie names.

If you need them, use the single quotes to tell IE not to interpret it, but to accept it as a literal.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM