5

我将应用程序护照本地复制粘贴到我的应用程序上,

有趣的是我可以登录用户,但我不能让他们注销,

app.get('/logout', function(req, res){
  req.logout();
  res.redirect('/');
});

这不是什么都不做,日志文件上什么都没有,而且我有一个指向 /logout 的链接

这是主要路线示例

app.get('/page1', function(req, res){                                                                                                                       
  res.render('page1', {user: req.user});
});

app.get('*', function(req,res){
  res.render('root', {user: req.user});
});

为什么注销它不起作用???

4

2 回答 2

2

显然这是一个已知问题:

为什么 Node 中的 PassportJS 不会在注销时删除会话

上面提到的线程建议req.session.destroy()改用。

如果能直接从 Passport 团队获得一些反馈,那就太好了。

于 2014-05-18T17:15:12.810 回答
-1

这仍然是一个问题。

我所做的是req.session.destroy(function (err) {});在他们注销时在服务器端和客户端使用:

const logout = () => {
    const url = '/users/logout'
    fetch(url)
    setTimeout(function () {
      location.reload();    }, 500);

这样,当刷新页面时,用户就没有会话。如果没有人通过身份验证,请确保您重定向到正确的页面。

也许不是最好的方法,但它确实有效。

于 2020-10-11T21:32:37.263 回答