基本上,我正在从 a.example.com 重定向到 www.example.com,我希望能够删除 www.example.com 上的 cookie(因为 cookie 是使用 .example.com 作为 cookie 域创建的),但下面的代码不起作用。
我知道这个问题似乎是重复的问题,我尝试了类似问题的所有内容,但它不起作用。查看代码我已经尝试过的内容。
使用 express 3.0.3 和 Node 0.10.32。
快速 session 中间件
...
var cookiedata = {
domain : '.example.com',
originalMaxAge : null,
httpOnly : false
};
app.use(express.session({
store : ...,
secret : ...,
key : 'express.sid',
cookie : cookiedata
}));
...
注销功能
function logout(req, res){
...
req.session.destroy(function(){
req.session = null;
res.clearCookie('express.sid', { path: '/' });
res.redirect('https://www.example.com');
});
}
我已经尝试过类似问题
所以我把 path : '/'
放在 express session 中间件中,例如:
app.use(express.session({ ..., path : '/' });
没有成功。
- https://groups.google.com/forum/#!topic/express-js/PmgGMNOzhgM
相反 res.clearCookie 我使用了: res.cookie('express.sid', '', {expires: new Date(1), path: '/' });
没有成功。
最佳答案
这是 Express.JS 的 response.clearCookie(文件 response.js 在第 749 行)。
var opts = merge({ expires: new Date(1), path: '/' }, options);
return this.cookie(name, '', opts);
如果您在此行设置断点,您将看到在无效日期报告过期。所以不要使用 response.clearCookie,而是让它像这个一样立即过期。
response.cookie("express.sid", "", { expires: new Date() });
关于javascript - node express,注销后如何清除cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114720/