我在我的Express应用程序中有一个受限区域'/dashboard'。我使用一个非常小的函数来限制访问:
app.get('/dashboard', loadUser, function(req, res){
res.render('dashboard', {
username: req.session.username
});
});
function loadUser(req, res, next){
if (req.session.auth) {
next();
} else {
res.redirect('/login');
}
};
问题在于,当我调用"logout"函数注销用户时,该用户的所有会话将被终止,而不仅仅是当前活动的会话。
app.get('/logout', function(req, res){
if (req.session) {
req.session.auth = null;
res.clearCookie('auth');
req.session.destroy(function() {});
}
res.redirect('/login');
});
当会话被杀死后,但是当我在浏览器中点击"返回"按钮时,从浏览器缓存中得到了受限制的页面。这意味着没有对'/dashboard'执行GET操作,也没有用户登录验证。我尝试在元标记(Jade模板)中使用no-cache,但仍然不起作用。
meta(http-equiv='Cache-Control', content='no-store, no-cache, must-revalidate')
meta(http-equiv='Pragma', content='no-cache')
meta(http-equiv='Expires', content='-1')
有人吗?