2017-10-03 13 views
0

J'ai une application Angular avec un backend Node/Express. Je viens de le tester dans Internet Explorer (11) et j'ai remarqué un bug étrange avec l'authentification.Copie de cookies avec Internet Explorer (Node backend)

À un moment donné, je mets à jour les détails d'authentification, qui sont stockés dans un jeton JSON Web dans un cookie. Sur Chrome, j'ai simplement mis un nouveau cookie avec le même nom, et ça marche très bien. Cependant, avec IE je l'ai trouvé n'a pas utilisé le nouveau cookie, et a trouvé qu'il avait effectivement stocké deux:

enter image description here

Les deux ont le même nom. Ils sont tous deux fournis par le même code, sur le même domaine (bien que nous ayons un second sous-domaine hébergé, cela n'a rien à voir avec ce site).

Réglage du cookie est simplement:

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

à l'aide-analyseur cookie.

Toutes les autres questions semblent indiquer qu'il s'agit de problèmes avec les sous-domaines. Mais je ne peux pas voir comment spécifier/définir?

Cela fonctionne bien hébergé localement en développement, mais lorsqu'il est déployé en production montre ce problème.

Répondre

0

J'ai résolu cela en définissant explicitement le domaine du cookie lorsqu'il est défini, plutôt que de le laisser vide.

Cependant, depuis Internet Explorer semble ignorer complètement les cookies sur localhost, je devais mettre en ajouter la ligne:

127.0.0.1 mydevdomain.com 

au fichier Windows hôte à C:\Windows\System32\Drivers\etc\hosts.

Je pourrais alors placer des biscuits avec l'option: domain: 'mydevdomain.com' et il s'est comporté comme prévu dans le développement et quand en production (mise à jour le domaine au domaine de production).