res.clearCookie()和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,也不会获得该会话。
res.clearCookie()和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,也不会获得该会话。