与Internet Explorer重复使用的Cookie(节点后端)

时间:2017-10-03 00:09:36

标签: node.js internet-explorer cookies

我有一个带有Node / Express后端的Angular应用程序。我刚刚在Internet Explorer(11)中对它进行了测试,发现了一个奇怪的身份验证错误。

在某些时候,我更新了身份验证详细信息,这些详细信息存储在cookie中的Json Web Token中。在chrome上,我只是设置一个具有相同名称的新cookie,它工作正常。然而,使用IE我发现它没有使用新的cookie,并发现它实际存储了两个:

enter image description here

两者都有相同的名称。它们都是由相同的代码在同一个域中提供的(虽然我们确实托管了第二个子域,但它与此站点无关)。

设置cookie只是:

response.cookie('jwt', token, { maxAge: 60 * 60 * 48 * 1000, httpOnly: true });

使用cookie-parser。

所有其他问题似乎表明这是子域的问题。但我看不出如何指定/设置它?

它在开发中本地托管很好,但在生产中部署时显示了这个问题。

1 个答案:

答案 0 :(得分:0)

我通过在设置时明确设置cookie的域来解决这个问题,而不是将其留空。

但是,由于Internet Explorer似乎完全忽略+----+---------------------+---------------------+----------+-------+ | id | starttime | endtime | duration | batch | +----+---------------------+---------------------+----------+-------+ | 1 | 2017-10-06 10:59:48 | 2017-10-06 10:59:58 | 10 | 1 | | 2 | 2017-10-06 11:00:02 | 2017-10-06 11:00:06 | 4 | 1 | | 3 | 2017-10-06 11:00:15 | 2017-10-06 11:00:22 | 7 | 1 | | 4 | 2017-10-06 11:00:30 | 2017-10-06 11:00:39 | 9 | 1 | | 5 | 2017-10-06 15:34:31 | 2017-10-06 15:34:45 | 14 | 2 | | 6 | 2017-10-06 15:34:48 | 2017-10-06 15:34:56 | 8 | 2 | | 7 | 2017-10-06 15:34:52 | 2017-10-06 15:34:59 | 7 | 2 | +----+---------------------+---------------------+----------+-------+ 上的cookie,我不得不设置添加行:

localhost

127.0.0.1 mydevdomain.com 的Windows主机文件。

然后,我可以使用选项C:\Windows\System32\Drivers\etc\hosts设置Cookie,并且它在开发和生产时(将域更新到生产域)时按预期运行。