我在節點後端使用express/express-session/passport,這是我的註銷碼。我的網絡客戶端正常註銷,但移動客戶端沒有登錄
// GET /logout
exports.logout = (req, res) => {
req.logout();
if (req.body.type === "mobile") {
return res.status(200).json({success: true});
}
res.redirect('/');
};
此網頁應用程序在http://myapp.dev:3000
上運行。只要我在Web應用程序上並單擊註銷按鈕,我就可以登錄/註銷,而不會出現任何問題。
我也有一個運行在192.168.2.30:8100
上的Ionic(移動應用程序)。當我點擊我的移動應用程序中的註銷按鈕時,我會像往常一樣向/註銷請求。
$stateProvider.state("auth.signout", {
url: "/signout",
controller: "SignoutController",
resolve: {
redirect: function($http, $state, Config) {
$http.get(`${Config.url("/logout")}`, {
type: "mobile"
}, {
withCredentials: true
}).then(res => {
$state.go('auth.signin');
}).catch(res => {
console.log(res);
alert("Could not log out");
});
}
}
});
當我點擊我的移動客戶端上的退出按鈕,我得到的JSON回來,但我無法從我的移動客戶端刪除Cookie,因此不斷重新連接。
任何想法如何防止這種情況?
您嘗試刪除您的cookie以及嘗試刪除它時出現了哪些錯誤? – VtoCorleone
@VtoCorleone我該怎麼做?它應該是後端的責任,告訴webview刪除cookies,我相信'req.logout()'設置必要的標題。除了輸入'myapp.dev/logout'外,我的web應用程序沒有代碼,並且工作正常。 – Aris