gpt4 book ai didi

javascript - node express,注销后如何清除cookie

转载 作者:IT老高 更新时间:2023-10-28 23:16:17 26 4
gpt4 key购买 nike

基本上,我正在从 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');

});
}

我已经尝试过类似问题

  1. https://github.com/strongloop/express/issues/691

所以我把 path : '/' 放在 express session 中间件中,例如:

app.use(express.session({ ..., path : '/' });

没有成功。

  1. 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com