178 votes

Manière de supprimer des cookies côté serveur

Pour mon processus d'authentification-je utiliser py-bcrypt pour créer un unique jeton lorsqu'un utilisateur se connecte et placez-la dans un cookie, qui est utilisé pour l'authentification.

Donc, je voudrais envoyer quelque chose comme ceci à partir du serveur:

Set-Cookie: token=$2a$12$T94df7ArHkpkX7RGYndcq.fKU.oRlkVLOkCBNrMilaSWnTcWtCfJC; path=/;

Qui fonctionne sur tous les navigateurs. Ensuite, pour supprimer un cookie, j'envoie un semblable cookie avec la "date d'expiration" ensemble sur le terrain pour le 1er janvier 1970

Set-Cookie: token=$2a$12$T94df7ArHkpkX7RGYndcq.fKU.oRlkVLOkCBNrMilaSWnTcWtCfJC; path=/; expires=Thu, Jan 01 1970 00:00:00 UTC; 

Et qui fonctionne très bien sur Fire Fox mais ne supprime pas les cookies sur internet explorer ou Safari.

Alors, quelle est la meilleure façon de supprimer un cookie (sans javascript de préférence). L'ensemble-le-expire-dans-le-passé méthode semble encombrant. Et aussi pourquoi ce travail dans FF mais pas sous IE ou safari?

242voto

Lekensteyn Points 22873

L'envoi de la même valeur de cookie avec ; expires annexée est une mauvaise idée puisque vous souhaitez que le contenu soit détruit.

Une meilleure idée serait d'invalider le cookie en configurant la valeur aux déchets et comprennent un expires champ:

Set-Cookie: token=deleted; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT

Notez que vous ne pouvez pas forcer tous les navigateurs pour supprimer un cookie. Le client peut configurer le navigateur de telle manière que le témoin persiste, même si la date est passée. Réglage de la valeur comme décrit ci-dessus permettrait de résoudre ce problème.

16voto

irreputable Points 25577

Réglage « expires » à une date passée est le moyen standard pour supprimer un cookie.

Votre problème est sans doute parce que le format de date n’est pas conventionnel. C’est à dire probablement attend GMT seulement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X