Javascript node express,如何在注销后清除cookie

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

基本上,我正在从a.example.com重定向到www.example.com,我希望能够删除www.example.com上的cookie(因为cookie是以.example.com作为cookie域创建的),但是下面的代码不起作用

我知道这个问题看起来像是重复的问题,我试过类似问题的所有方法,但都不起作用。查看代码后的内容我已经尝试过的内容

使用express 3.0.3和节点0.10.32

快速会话中间件

...
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');

    });
}
我已经从类似的问题中尝试了什么


  • 因此,我将路径:'/'放在express会话中间件中,例如:

    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('/');
    });