我如何强制删除会话ID cookie与快速会议?
我正在使用快速会话模块来设置到期年龄的会话。 在这个年龄之后,当页面被刷新时,cookie将被删除。 但是,比如当用户注销时,我想强制删除这个cookie。 我已经使用req.session.destroy.
成功销毁了会话req.session.destroy.
我试过使用:
res.clearCookie('SID').status(200).send('Page');
里面req.session.destroy,
虽然,如果我在浏览器中查看cookie的详细信息,我看到内容设置为什么都没有,过期date设置为Thursday, 1 January 1970 at 01:00:00,
虽然cookie不会删除自己。 我还设置了未unset: 'destroy'
会话存储configuration中的unset: 'destroy'
,但这并没有解决我的问题。
中间件:
app.use(session({ store: new MemoryStore({ checkPeriod: 86400000 }), cookie: { secure: true, maxAge: 10000 }, secret: secret, resave: false, saveUninitialized: false, name: 'SID', unset: 'destroy' }));
提前致谢。
您需要强制设置req.session.cookie.expires
或req.session.cookie.maxAge
的值。
以这段代码为例,
var timeInMillseconds = 3600000; req.session.cookie.expires = new Date(Date.now() + timeInMillseconds); req.session.cookie.maxAge = timeInMillseconds;
现在使用这个中间件
app.use(session({ secret: 'mySecre', saveUninitialized: true })) app.get('/', function(req, res){ req.session.myUser = "myUser"; req.session.cookie.expires = new Date(Date.now() + 36000000); req.session.cookie.myDog = "myDog"; res.status(201).send(req.session); //you can also use 200 console.log(req.session); })
- 什么时候使用快速会话创build一个cookie?
- NodeJS + Express – 将会话中间件应用于某些路由
- req.session.passport为空,反序列化用户未调用 – ExpressJS,护照
- Express JS会话存储实现:TypeError:Object 没有方法'on'
- 护照req.isAuthenticated()总是返回fasle
- TypeError:无法在Object.handle中读取未定义属性'csrfSecret' – 使用Node.js
- 如何通过BrowserSync中间件设置会话cookie?
- 添加到Node.js express-session的variables在下一个请求中是未定义的
- 如何保持express req.session对象?