1. 程式人生 > >如何在禁用cookie的情況下保持登入狀態

如何在禁用cookie的情況下保持登入狀態

謝邀。

“保持登入狀態” 其實就是服務端需要一些資料來識別發起當前請求的使用者。比如在登入的時候,後端生成一個 session ID,然後設定到 cookie,後面的所有請求瀏覽器都會帶上 cookie,然後服務端從 cookie 裡獲取 session ID,再查詢到使用者資訊。

所以,保持登入的關鍵不是 cookie,而是通過 cookie 儲存和傳輸的 session ID,其本質是能獲取使用者資訊的資料。除了 cookie,還通常使用 HTTP 請求頭來傳輸,比如標準的 Authorization,也可以自定義,如 X-Auth-SessionID 等。但是這個請求頭瀏覽器不會像 cookie 一樣自動攜帶,需要手工處理。

比如,登入的時候,服務端返回一個 JWT 格式的 access token,前端將其儲存到 localStorage,後續的請求,構造一個類似

Authorization: Bearer <access token>

的請求頭。服務端從 Authorization 取出 token, 解碼並查詢到對應的使用者。最終的效果和 cookie 是一樣的。