即使应用程序设置为无缓存,仪表板也会在注销时获得缓存

时间:2019-01-08 07:07:08

标签: node.js express

所以我将cache-control设置为

app.use(function(req, res, next) {
   res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, max- 
            stale=0, post-check=0, pre-check=0');
   next();
});

在我的登录中,它运行正常。登录后,我将永远无法返回登录页面。问题是我注销时。它将我重定向到恰好正确的登录页面,但是当我按下浏览器后退按钮时,它将返回到我的仪表板。我非常确定会话已销毁,因为当我刷新仪表板时,它会重定向到登录页面。

这里有我的登录功能

exports.login = function (req, res) {
   if (req.session.HAS_LOGGED_IN) {
    res.redirect("/dashboard");
   } else {
       res.render('login', {
           ERROR_DISPLAY: req.session.ERROR_DISPLAY
      });
   }
}

仪表板

exports.dashboard = function (req, res) {
   if (req.session.HAS_LOGGED_IN) {
       res.render('dashboard', {
       /*param here*/
       });
   } else {
       req.session.ERROR_DISPLAY = `none`;
       res.redirect('/login');
   }
}

注销

exports.logout = function (req, res) {
   if (req.session) {
       req.session.destroy(function (err) {
           if (err) {
               return next(err);
           } else {
               res.redirect("/");
           }
       });
   }
}

我是网络开发的新手,为此我进行了大量搜索,但似乎无济于事。任何帮助深表感谢。干杯,谢谢!

0 个答案:

没有答案