Para un flujo de OAuth, configuro el token de acceso en una cookie en el servidor (Express) así:
res.cookie('name' , 'myname', {httpOnly: false, path:'/'}); res.cookie('access_token', accessToken); // on the client console.log(document.cookie); // displays "name=myname; access_token=12345"Cuando/si el token de acceso ya no es válido, quiero destruir la cookie. Entonces, en el cliente, si el servidor no puede realizar una solicitud exitosa con ese token de acceso, estoy haciendo esto:
document.cookie = 'name=myname; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'; console.log(document.cookie) // displays "access_token=12345"Entonces, por alguna razón, está eliminando la parte del "nombre" de la cookie pero no el token de acceso. ¿Cómo puedo destruir la cookie por completo?
Vi otros comentarios sobre cómo la ruta debería ser la misma o que httpOnly establecido en verdadero evitaría que javascript mutara la cookie, pero he abordado todo eso y aún el token se queda en la cookie.
Use el siguiente código:
var delete_cookie = function(name) { document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;'; }; delete_cookie('name'); delete_cookie('access_token');Para configurar las cookies, puede utilizar
res.cookie("key", value);Para eliminar la cookie, puede utilizar
res.clearCookie("key");