javascript - principiantes - npm
node express, cómo borrar la cookie después de desconectarse (2)
Esto es response.clearCookie of Express.JS (file response.js en la línea 749).
var opts = merge({ expires: new Date(1), path: ''/'' }, options);
return this.cookie(name, '''', opts);
Si establece un punto de interrupción en esta línea que verá caduca se informa en una fecha no válida. Entonces, en lugar de usar response.clearCookie, solo haz que expire inmediatamente como este.
response.cookie("express.sid", "", { expires: new Date() });
Básicamente redirecciona de a.example.com a www.example.com y espero poder eliminar las cookies en www.example.com (porque la cookie se crea con .example.com como el dominio de la cookie), pero el siguiente código no funciona.
Sé que esta pregunta parece una pregunta duplicada, intenté todo a partir de una pregunta similar, pero no funciona. Ver después del código lo que ya probé .
Usando express 3.0.3 y el nodo 0.10.32.
Express sesión de middleware
...
var cookiedata = {
domain : ''.example.com'',
originalMaxAge : null,
httpOnly : false
};
app.use(express.session({
store : ...,
secret : ...,
key : ''express.sid'',
cookie : cookiedata
}));
...
función de cierre de sesión
function logout(req, res){
...
req.session.destroy(function(){
req.session = null;
res.clearCookie(''express.sid'', { path: ''/'' });
res.redirect(''https://www.example.com'');
});
}
Lo que ya probé de una pregunta similar
Así que puse path : ''/''
en el middleware de sesión express, como:
app.use(express.session({ ..., path : ''/'' });
Sin éxito.
- https://groups.google.com/forum/#!topic/express-js/PmgGMNOzhgM
En cambio, res.clearCookie usé: res.cookie (''express.sid'', '''', {expira: nueva Fecha (1), ruta: ''/''});
Sin éxito.
Esto funciona para mí con el módulo cookie-parser
:
router.get(''/logout'', function(req, res){
cookie = req.cookies;
for (var prop in cookie) {
if (!cookie.hasOwnProperty(prop)) {
continue;
}
res.cookie(prop, '''', {expires: new Date(0)});
}
res.redirect(''/'');
});