簡體   English   中英

在瀏覽器后退按鈕或重新加載頁面時注銷用戶

[英]Logout user on browser back button or when reload page

我看到一些網站在按下瀏覽器后退按鈕以及刷新頁面時會注銷用戶。 我怎樣才能為我的網站做到這一點?

window.addEventListener("beforeunload", func)在移動瀏覽器上不可靠。 此處討論了有關一般問題的更多信息:
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon

注銷用戶取決於登錄 state 的存儲方式。 如果登錄是通過 cookie 處理的,您可以為beforeunloadvisibilitychanged事件注冊一個回調 function ( addEventListener ),並在處理程序中刪除用戶的 session cookie。 如果注銷需要與服務器交互(例如向/api/logout發送 HTTP 請求或類似的東西),那么您可能會遇到麻煩。 您必須使用 XMLHttpRequest。 如果您在異步模式下使用它,用戶代理不太可能在瀏覽器離開頁面時實際發送/完成 HTTP 請求。 一種解決方法是在同步模式下使用 XMLHttpRequest。 當在beforeunload中啟動時,瀏覽器更有可能完成這樣的請求,但不能保證。 除了嘗試這種卸載/可見性更改技巧之外,請確保對 session 過期(無論是服務器端過期還是通過 cookie 過期)實施其他方法。 沒有 100% 可靠的方法來保證您的客戶端“用戶離開頁面”JavaScript 例程每次都會運行,如果您嘗試在所述事件處理程序中發送 HTTP 請求,則更不可靠。

暫無
暫無

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

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