问一个关于服务端cookie的问题
发布于 10 年前 作者 hc2014 7290 次浏览 最后一次编辑是 8 年前

res.setHeader(‘Set-Cookie’, ‘username=’+req.body.username+’; path=/; max-age=360000’); res.setHeader(‘Set-Cookie’, ‘pwd=’+req.body.pwd+’; path=/; max-age=360000’); 我这里在服务端 写了2个cookie 但是当第二次再执行这里的时候 原来的cookie并没有被覆盖,本来想删除原有的cookie的 但是感觉这方法不靠谱,最重要的是还不知道怎么删除… 想请教各位前辈 有什么比较好用的处理cookie的模块可以用的?

11 回复

你在响应头设置的cookie是什么名字,就在下一个响应头把这个名字的cookie的max-age设为0。

@tulayang 下一个响应头?

@tulayang 不知道是我搞错了还是怎样,我这里的cookie有点问题。之所以发帖问cookie怎么操作其实是因为之前ciikie 总部对头,刚才我 测试了N遍发现我这里的ciikie 设置总要在第二遍才有效果,就是说当我登陆第一次的是后台会执行login 这个方法,会写入2个cookie 记录账号和密码。登陆完成以后cookie并没有,而是当我再次登陆的时候这个时候记录的cookie 是我第一次登陆的账号密码,删除也是一样的

@hc2014

你用了username和pwd两个cookie同时通过,才能登录。

console.log(req.headers)看看

@tulayang 我登陆的时候没有用到cookie 现在就是想做这个功能在 只是在服务端 查看cookie的时候总觉得不对头。 我再服务端输出cookie:console.log(req.headers.cookie);
内容如下:username=huangchao; pwd=123 现在我想做的是想删除这两个cookie,我是这样写的res.setHeader(‘Set-Cookie’, “username;max-age=0”); 但是删除不了,之前还有其他的cookie 我根据你说的把max-age=0 这样删除成功过(偶尔可以)。所以我觉得很奇怪

@tulayang 刚刚我把方法改了 就在登陆成功的时候 写入了2个cookie 全部代码是: res.setHeader(‘Set-Cookie’,‘username=’+req.body.username+’; path=/; max-age=360000’); res.setHeader(‘Set-Cookie’,‘username=’+req.body.pwd+’; path=/; max-age=360000’); console.log(req.headers.cookie); res.json(“ok”); 然后输出的结果是 pwd=123

@tulayang app.post(’/views/login.html’,function(req,res,next){ res.setHeader(‘Set-Cookie’, “username;max-age=0”); console.log(req.headers.cookie); }); cookie 都删不掉,还是我写错了?

@tulayang { host: ‘localhost:3000’, connection: ‘keep-alive’, ‘content-length’: ‘14’, accept: ‘text/plain, /; q=0.01’, origin: ‘http://localhost:3000’, ‘x-requested-with’: ‘XMLHttpRequest’, ‘user-agent’: ‘Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Ge cko) Chrome/35.0.1916.153 Safari/537.36’, ‘content-type’: ‘application/x-www-form-urlencoded; charset=UTF-8’, referer: ‘http://localhost:3000/’, ‘accept-encoding’: ‘gzip,deflate,sdch’, ‘accept-language’: ‘zh-CN,zh;q=0.8’, cookie: ‘username=123; pwd=123’ }

@hc2014

cookie就没有username;max-age=0这样的语法。

标准cookie是: name=value; path=/url; max-age=0; …

没有 name; path=/url; max-age=0;

@tulayang 诶 我最开始是这样写的res.setHeader(‘Set-Cookie’, “username=123; path=/; max-age=0”); 是没用 我才把参数都删除了。你把你设置cookie 和删除cookie 的代码贴出来嘛,我看看我到底问题在哪

res.setHeader(‘Set-Cookie’, “username=abc; path=/; max-age=36000”);

res.setHeader(‘Set-Cookie’, “username=abc; path=/; max-age=0”);

回到顶部