我正在使用Express cookie-session進行身份驗證,如果我理解正確,它的作業原理是在用戶的瀏覽器中本地存盤一個 cookie,并且沒有會話資料客戶端。
檔案說,為了注銷,我們應該req.session = null在服務器上進行設定。所以現在,我的客戶端向該端點發出 HTTP 請求。
客戶:
async function logout() {
await fetch(
process.env.REACT_APP_SERVER_URL "/logout",
{
method: "POST",
}
)
}
服務器:
exports.logout = (req, res, next) => {
req.session = null
res.sendStatus(200)
}
但是,如果服務器關閉,這顯然會失敗。所以現在我想知道僅洗掉會話cookie客戶端甚至完全洗掉注銷端點是否就足夠了。如果服務器上沒有存盤會話資料,這應該也可以正常作業并且不會留下任何殘留物,對吧?
uj5u.com熱心網友回復:
是的,這是正確的,您可以洗掉cookie,下次客戶端訪問服務器時,將沒有會話來識別用戶,因此用戶將被注銷。
但是,一般來說,出于安全原因,客戶端不應該能夠使用會話 cookie,并且幾乎總是將會話 cookie 標記為httpOnly意味著它不能在客戶端使用 javascript 進行操作。
您可以采取的一項額外預防措施(如果您決定讓客戶端使用會話 cookie)是針對signcookie,因此即使客戶端更改 cookie 的內容,cookie 簽名也將無效并且會被拒絕服務器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/447603.html
標籤:节点.js 表示 饼干 会话cookies cookie 会话
