Expressjs护照本地无法注销

时间:2012-09-18 10:04:23

标签: javascript jquery node.js authentication express

我复制粘贴应用程序护照本地应用程序,

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

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});
});

为什么退出它不起作用????

2 个答案:

答案 0 :(得分:2)

显然这是一个已知问题:

Why is PassportJS in Node not removing session on logout

上面提到的主题建议改为使用req.session.destroy()

直接从Passport团队获得一些反馈会很好。

答案 1 :(得分:0)

这仍然是个问题。

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

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

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

也许不是最好的方法,但是它可行。