[英]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 處理的,您可以為beforeunload
或visibilitychanged
事件注冊一個回調 function ( addEventListener
),並在處理程序中刪除用戶的 session cookie。 如果注銷需要與服務器交互(例如向/api/logout
發送 HTTP 請求或類似的東西),那么您可能會遇到麻煩。 您必須使用 XMLHttpRequest。 如果您在異步模式下使用它,用戶代理不太可能在瀏覽器離開頁面時實際發送/完成 HTTP 請求。 一種解決方法是在同步模式下使用 XMLHttpRequest。 當在beforeunload
中啟動時,瀏覽器更有可能完成這樣的請求,但不能保證。 除了嘗試這種卸載/可見性更改技巧之外,請確保對 session 過期(無論是服務器端過期還是通過 cookie 過期)實施其他方法。 沒有 100% 可靠的方法來保證您的客戶端“用戶離開頁面”JavaScript 例程每次都會運行,如果您嘗試在所述事件處理程序中發送 HTTP 請求,則更不可靠。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.