nodejs如何删除客户端cookie

nodejs删除如何客户端cookie。
我做了两个接口,
a接口访问之后会在页面设置一个cookie。
b接口访问之后会删除刚才的cookie,
但是我的b接口无法删除

res.setHeader("Set-Cookie", ["id="]);

我使用这种方法可以清除,但是客户端还是会留下id= 这样的字段,有没有什么方法直接删除呢?

阅读 14.5k
4 个回答
function delete_cookie( name ) {
  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

只能通过设置过期时间令其马上失效
res.cookie(prop, '', {expires: new Date(0)});

res.clearCookie('id')

新手上路,请多包涵

我是初一的写的可能不对,谅解

    function cookie2Json() {
        if (req.headers.cookie&&req.headers.cookie.indexOf('; ')) {
            let cookieArr = req.headers.cookie.split("; ");
            let obj = {}
            cookieArr.forEach((i) => {
                let arr = i.split("=");
                obj[arr[0]] = arr[1];
            })
            return obj
        } else {return null;}
    }
    res.cookie=function(id, value, json={path: '/', maxAge: null, expires: null, domain: null}) {
        if (json.maxAge != null){
            json.maxAge = '; max-age=' + json.maxAge;
        }
        if (json.expires != null){
            json.expires ='; expires='+ json.expires;
        }
        if (json.domain != null){
            json.domain ='; domain='+ json.domain;
        }
        this.setHeader('set-cookie', id+'='+value+'; path='+json.path+json.maxAge+json.expires+json.domain);
    }
    res.clearCookie=function(id, path='/') {
        this.setHeader('set-cookie', id+'=; maxAge=0; path='+path);
    }
    req.cookie = cookie2Json();
    req.url=url.parse(req.url)

注意只能在res.writeHead前使用
这个是给http库的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题