Comment puis-je supprimer un cookie spécifique avec le nom roundcube_sessauth
?
Ne devrait pas ce qui suit:
function del_cookie(name) {
document.cookie = 'roundcube_sessauth' +
'=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
Et alors:
<a href="javascript:del_cookie(name);">KILL</a>
Tuer le cookie roundcube_sessauth
?
Pour supprimer un cookie, définissez la date expires
sur une date antérieure. Une fonction qui fait cela serait.
var delete_cookie = function(name) {
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
Ensuite, pour supprimer un cookie nommé roundcube_sessauth
, il suffit de le faire.
delete_cookie('roundcube_sessauth');
Vous devez définir le chemin sur lequel le cookie existe pour vous assurer de supprimer le vrai
function set_cookie(name, value) {
document.cookie = name +'='+ value +'; Path=/;';
}
function delete_cookie(name) {
document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
Si vous ne spécifiez pas le chemin d'accès, le navigateur définit le cookie par rapport à la page sur laquelle vous vous trouvez. Ainsi, si vous supprimez le cookie sur une page différente, un autre cookie continue d'exister.
Éditer basé sur le commentaire de @Evan Morrison.
Sachez que dans certains cas, pour identifier le bon cookie, le paramètre Domain
est également requis.
Habituellement utilisé comme Domain=.yourdomain.com
La période précédant le nom de domaine signifie que ce cookie peut exister sur n’importe quel sous-domaine (www
compte également comme sous-domaine).
En outre, comme indiqué dans la réponse de @ RobertT, les cookies HttpOnly
ne peuvent pas être supprimés avec JavaScript du côté client.
// si passé exMins = 0, il sera supprimé dès qu'il le crée.
function setCookie(cname, cvalue, exMins) {
var d = new Date();
d.setTime(d.getTime() + (exMins*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
setCookie('cookieNameToDelete','',0) // this will delete the cookie.
Je ne sais pas vraiment si c'était le cas avec la version de Roundcube du 12 mai, mais pour la version actuelle, la réponse est que vous ne pouvez pas supprimer le cookie roundcube_sessauth
de JavaScript, car il est marqué comme suit: HttpOnly
. Et cela signifie qu'il n'est pas accessible à partir du code côté client JS et qu'il ne peut être supprimé que par un script côté serveur ou par une action directe de l'utilisateur (via des mécanismes de navigateur tels que le débogueur intégré ou un plugin).
Vous pouvez essayer cette solution
var d = new Date();
d.setTime(d.getTime() + (0*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = 'COOKIE_NAME' + "=" + "" + ";domain=domain.com;path=/;expires=" + expires;