Javascript node express,如何在注销后清除cookie
基本上,我正在从a.example.com重定向到www.example.com,我希望能够删除www.example.com上的cookie(因为cookie是以.example.com作为cookie域创建的),但是下面的代码不起作用 我知道这个问题看起来像是重复的问题,我试过类似问题的所有方法,但都不起作用。查看代码后的内容我已经尝试过的内容 使用express 3.0.3和节点0.10.32 快速会话中间件Javascript node express,如何在注销后清除cookie,javascript,node.js,cookies,express,express-session,Javascript,Node.js,Cookies,Express,Express Session,基本上,我正在从a.example.com重定向到www.example.com,我希望能够删除www.example.com上的cookie(因为cookie是以.example.com作为cookie域创建的),但是下面的代码不起作用 我知道这个问题看起来像是重复的问题,我试过类似问题的所有方法,但都不起作用。查看代码后的内容我已经尝试过的内容 使用express 3.0.3和节点0.10.32 快速会话中间件 ... var cookiedata = { domain
...
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');
});
}
我已经从类似的问题中尝试了什么app.use(express.session({ ..., path : '/' });
没有成功
相反,我使用了res.clearCookie: res.cookie('express.sid','',{expires:新日期(1),路径:'/'})李>
没有成功。这是Express.JS的response.clearCookie(文件response.JS,第749行) 如果在此行设置断点,您将看到expires报告的日期无效。因此,与其使用response.clearCookie,不如让它像这样立即过期
response.cookie("express.sid", "", { expires: new Date() });
这对我来说适用于
cookie解析器
模块:
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('/');
});
对我有效的是在res.clearCookie中添加路径和域
res.clearCookie(,{path:'/',domain:}
另外,请确保在前端包含凭据,否则不会随请求一起发送cookie。如果没有cookie发送到服务器,则无需清除任何内容
fetch('url.com',{credentials:“include”}
你找到解决方案了吗?这里没有被接受的答案。但是它并没有完全从浏览器中删除cookie不仅没有删除cookie,甚至没有更新cookie对于我来说,我无法使用POST或PUT,而只能使用get
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('/');
});