res.clearCookie() 和 req.session.destroy() 之间的实际区别是什么?
What is the practical difference between res.clearCookie() and req.session.destroy()?
我正在使用 node.js
,以及 express
和 express-session
包来测试各种 CRUD 实现。
res.clearCookie()
和 req.session.destroy()
之间的实际区别是什么?
下面的两种代码模式似乎完成了同样的事情,但我想知道我是否遗漏了一些重要的东西。
代码模式1:
router.post('/logout', function(req, res, next) {
req.session.destroy( function(error) {
if(error) {
console.log(error);
}
res.redirect('/');
});
});
代码模式2:
router.post('/logout', function(req, res, next) {
res.clearCookie(SESSION_NAME);
res.redirect('/');
});
res.clearCookie()
只会删除 cookie,如果您能以某种方式恢复 cookie(如果您有备份或有人偷了它),您将重新登录(或任何 cookie 的功能) .如果您使用 req.session.destroy()
,会话也会在服务器中失效,因此即使您取回了 cookie,您也不会取回会话。
我正在使用 node.js
,以及 express
和 express-session
包来测试各种 CRUD 实现。
res.clearCookie()
和 req.session.destroy()
之间的实际区别是什么?
下面的两种代码模式似乎完成了同样的事情,但我想知道我是否遗漏了一些重要的东西。
代码模式1:
router.post('/logout', function(req, res, next) {
req.session.destroy( function(error) {
if(error) {
console.log(error);
}
res.redirect('/');
});
});
代码模式2:
router.post('/logout', function(req, res, next) {
res.clearCookie(SESSION_NAME);
res.redirect('/');
});
res.clearCookie()
只会删除 cookie,如果您能以某种方式恢复 cookie(如果您有备份或有人偷了它),您将重新登录(或任何 cookie 的功能) .如果您使用 req.session.destroy()
,会话也会在服务器中失效,因此即使您取回了 cookie,您也不会取回会话。