[英]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.