簡體   English   中英

Expressjs護照-本地無法注銷

[英]Expressjs passport-local can't logout

我將應用程序護照本地復制粘貼到我的應用程序上,

有趣的是我可以登錄用戶,但我不能讓他們注銷,

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

這不是什么都不做,日志文件上什么也沒有,II 有一個指向 /logout 的鏈接

這是主要路線示例

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

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

為什么注銷它不起作用????

顯然這是一個已知問題:

為什么 Node 中的 PassportJS 不會在注銷時刪除會話

上面提到的線程建議使用req.session.destroy()代替。

直接從 Passport 團隊獲得一些反饋會很好。

這仍然是一個問題。

我所做的是使用req.session.destroy(function (err) {}); 在服務器端和客戶端,每當他們注銷時:

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

這樣,當刷新頁面時,用戶就沒有會話了。 如果沒有人通過身份驗證,請確保您重定向到正確的頁面。

也許不是最好的方法,但它有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM