web-dev-qa-db-fra.com

Chrome ne supprime pas les cookies de session

J'essaie de définir un cookie de session en javascript comme ceci:

document.cookie = 'name=alex; path=/'

Mais Chrome ne le supprime pas même si je quitte le navigateur et le relance à nouveau. 

J'ai vérifié dans Firefox et Opera et les deux fonctionnent comme prévu - ils suppriment le cookie de session à la sortie du navigateur.

Chrome ignore-t-il simplement les règles d'expiration?

J'ai vérifié plusieurs systèmes d'exploitation et découvert que le cookie de session était supprimé de Chrome sous Windows XP et Ubuntu, mais PAS sous Mac OSX Lion. 

167
mgs
191
Jesper

Je viens d'avoir le même problème avec un cookie qui devait expirer à la "fin de la session de navigation".

Malheureusement, cela n’a pas été le cas, alors j’ai joué un peu avec les paramètres du navigateur.

Il s'est avéré que la fonctionnalité qui mémorise les onglets ouverts lors de la fermeture du navigateur était à l'origine du problème. (La fonctionnalité s'appelle "Au démarrage" - "Continuer là où je me suis arrêté". Au moins sur la version actuelle de Chrome).

Cela se produit également avec Opera et Firefox.

25
Nikola Kolev

Je viens d'avoir ce problème. J'ai remarqué que même après la fermeture de mon navigateur, de nombreux processus chrome étaient en cours d'exécution. Il s'avère que ces thèses étaient chacune de mon extension chromée. 

Sous les paramètres avancés, j'ai décoché 'Continue running background apps when Google Chrome is closed' et mes cookies de session ont commencé à fonctionner comme ils le devraient.

Encore une douleur pour les développeurs qui attendions que les cookies de session soient effacés lorsque l'utilisateur a fini de naviguer

19
NSjonas

Cela est peut-être dû au fait que Chrome est toujours en cours d'exécution après la fermeture du navigateur. Essayez de désactiver cette fonctionnalité en procédant comme suit:

  1. Chrome ouvert: // paramètres /
  2. Cliquez sur "Afficher les paramètres avancés ..."
  3. Accédez à la section Système et désactivez "Continuer à exécuter les applications en arrière-plan lorsque Google Chrome est fermé". Cela forcera Chrome à se fermer complètement, puis supprimera les cookies de session.

Cependant, je pense que Chrome devrait vérifier et supprimer les cookies de la session précédente en commençant au lieu de fermer. 

9
Justmyhobby

Je devais les deux, décoché, sous les paramètres avancés de Chrome:

  • "Continuer à exécuter les applications en arrière-plan lorsque Google Chrome est fermé"
  • "Continuer là où je me suis arrêté", "Au démarrage"
5
emottet

Une alternative simple consiste à utiliser le nouvel objet sessionStorage . Selon les commentaires, si vous avez coché «continuer là où j'ai laissé», sessionStorage persistera entre les redémarrages.

3
TimDog

J'ai eu le même problème avec "document.cookie" dans Windows 8.1, la seule façon pour Chrome de supprimer le cookie était de le fermer à partir du gestionnaire de tâches (ce qui n'était pas vraiment une manière de fantaisie). comme "js-cookie". 

2
TurKux

Avez-vous essayé de supprimer l'extension Hangouts dans Google Chrome? parce que cela force chrome à continuer à fonctionner même si vous fermez toutes les fenêtres.

Je faisais également face au problème, mais le problème était résolu maintenant.

1
Salman Ali Khan

La solution serait d'utiliser sessionStorage, FYI: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

0
Sky Yip

Je viens d'avoir ce problème de Chrome stockant un identifiant de session mais je n'aime pas l'idée de désactiver l'option pour continuer là où je l'avais laissé. J'ai consulté les cookies du site Web et trouvé un cookie d'identification de session pour la page de connexion. Supprimer cela n'a pas corrigé mon problème. Je recherche le domaine et trouve qu’il existe un autre cookie d’ID de session sur le domaine. La suppression les deux / Les cookies de session ID ont corrigé le problème manuellement et je n’ai pas fermé ni rouvert le navigateur qui aurait pu restaurer les cookies.

0
Lauren Tariel

Si vous définissez le domaine pour le cookie de session php, les navigateurs semblent le conserver pendant environ 30 secondes. Cela ne semble pas avoir d'importance si vous fermez l'onglet ou la fenêtre du navigateur.

Ainsi, si vous gérez des sessions à l'aide de ce qui suit, le cookie risque de rester bloqué dans le navigateur plus longtemps que prévu.

ini_set("session.cookie_domain", 'www.domain.com');

La seule façon que j'ai trouvée de supprimer le cookie suspendu consiste à supprimer la ligne de code qui définit le domaine du cookie de session. Surveillez également la fonction session_set_cookie_params (). La préfixe du domaine ne semble pas non plus avoir d'incidence sur la question.

Cela pourrait être un bug de php puisque php envoie un cookie de session (c'est-à-dire PHPSESSID=b855ed53d007a42a1d0d798d958e42c9) dans l'en-tête après la destruction de la session. Ou ce pourrait être un problème de propagation de serveur mais je ne le pense pas puisque mes tests étaient sur des serveurs privés.

0
SurferJoe