2017-09-09 12 views
0

Si je mets un cookie en utilisant res.cookie('TEST', 'Test content.').status(200).send('Cookie set.');, je vois qu'il est correctement défini dans le navigateur. Cependant, sur une autre page, si je fais res.clearCookie('TEST').status(200).send('Cookie cleared.');, je vois que le cookie n'est pas supprimé. Je voudrais supprimer complètement ce cookie. J'ai également essayé res.clearCookie('TEST', {path: '/'}); en vain.Je ne peux pas supprimer les cookies dans Express

Je suis notamment l'emporte-parser comme ceci:

const cookieParser = require('cookie-parser'); 
app.use(cookieParser(process.env.secret)); 

This is what I see when the cookie has been 'cleared' - it's not deleted.

L'image ci-dessus montre ce que je vois après le cookie a été 'effacé' - mais ce n'est pas réellement supprimé.

J'apprécierais n'importe quelle aide que je peux obtenir. Merci.

Répondre

1

Un serveur ne peut pas indiquer à un client de supprimer un cookie particulier. Tout ce qu'il peut faire est d'écraser le cookie afin que sa valeur soit vide, et définir une date d'expiration qui est déjà passée (ce qui est exactement ce que fait res.clearCookie), dans l'espoir que le navigateur va prendre l'indice et effectivement supprimer il.

Dans votre cas, même si le cookie a déjà expiré, votre navigateur ne le supprime pas pour une raison quelconque. Ce n'est pas quelque chose qu'Express peut réparer.