Node.js nodejs会话注销/销毁,无需重新加载页面

Node.js nodejs会话注销/销毁,无需重新加载页面,node.js,angularjs,express,session,passport.js,Node.js,Angularjs,Express,Session,Passport.js,我正在node.js应用程序中使用express、express会话和passport,在执行自动注销时出现问题 初始化: expressapp.use(session({ secret: '****', cookie: { maxAge: 1000 * 60 * 60 }, // 1h saveUninitialized: false, resave: true })); expressapp.use(passport.initialize()); expressapp.use

我正在node.js应用程序中使用express、express会话和passport,在执行自动注销时出现问题

初始化:

expressapp.use(session({
  secret: '****',
  cookie: { maxAge: 1000 * 60 * 60 }, // 1h
  saveUninitialized: false,
  resave: true
}));
expressapp.use(passport.initialize());
expressapp.use(passport.session());
我的注销代码:

  expressapp.get('/profile/', isLoggedIn, function (req, res) {
    logger.info('get profile view!');
    res.render('profile');
  });

  expressapp.get('/logout', function(req, res) {
    logger.info('logging out..');
    req.session.destroy(function (err) {
        res.redirect('/');
    });
  });

  expressapp.post('/login', passport.authenticate('login', {
    successRedirect: '/#!/profile',
    failureRedirect: '/#!/login',
  }));

  function isLoggedIn(req, res, next) {
    if(req.isAuthenticated()) {
      logger.info('authenticated!');
      return next();
    } else {
      logger.info('unauthorized!');
      res.render('login');
    }
  }
我现在遇到的问题是,如果我点击我的注销按钮,函数会被调用,我会被重定向,但是当再次返回到配置文件时,上面列出的函数不会再次被调用(没有打印日志),因为它们仍然保存在某个地方。只有当我重新加载站点时,我才会被重定向到登录页面。这不适用于我的自动注销,因为我不会重新加载页面

我还尝试在注销路由中调用req.logout(),但结果相同


如何强制在每次单击时调用这些函数,而不是在每次重新加载站点时调用这些函数?此信息保存在哪里?

req.logout不会清除会话。我有一个类似的问题-你可以在这里找到答案:req.session.destroy()对meSee也不起作用?