|
|
@ -20,10 +20,10 @@ |
|
|
mounted() { |
|
|
mounted() { |
|
|
// 页面加载时标记为"活动状态" - rqrq |
|
|
// 页面加载时标记为"活动状态" - rqrq |
|
|
sessionStorage.setItem('page_active', 'true') |
|
|
sessionStorage.setItem('page_active', 'true') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 监听浏览器关闭事件,自动退出登录 - rqrq |
|
|
// 监听浏览器关闭事件,自动退出登录 - rqrq |
|
|
window.addEventListener('beforeunload', this.handleBeforeUnload) |
|
|
window.addEventListener('beforeunload', this.handleBeforeUnload) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 监听页面显示事件(从缓存恢复或刷新后) - rqrq |
|
|
// 监听页面显示事件(从缓存恢复或刷新后) - rqrq |
|
|
window.addEventListener('pageshow', this.handlePageShow) |
|
|
window.addEventListener('pageshow', this.handlePageShow) |
|
|
}, |
|
|
}, |
|
|
@ -52,11 +52,11 @@ |
|
|
handleBeforeUnload(e) { |
|
|
handleBeforeUnload(e) { |
|
|
// 标记为"即将卸载"状态 - rqrq |
|
|
// 标记为"即将卸载"状态 - rqrq |
|
|
sessionStorage.setItem('page_active', 'false') |
|
|
sessionStorage.setItem('page_active', 'false') |
|
|
|
|
|
|
|
|
// 延迟50ms检查是否是真正关闭(而不是刷新)- rqrq |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 延迟100ms检查是否是真正关闭(而不是刷新)- rqrq |
|
|
setTimeout(() => { |
|
|
setTimeout(() => { |
|
|
const pageActive = sessionStorage.getItem('page_active') |
|
|
const pageActive = sessionStorage.getItem('page_active') |
|
|
// 如果50ms后仍然是false,说明是真正关闭,执行退出登录 - rqrq |
|
|
|
|
|
|
|
|
// 如果100ms后仍然是false,说明是真正关闭,执行退出登录 - rqrq |
|
|
if (pageActive === 'false') { |
|
|
if (pageActive === 'false') { |
|
|
const token = this.$cookie.get('token') |
|
|
const token = this.$cookie.get('token') |
|
|
if (token && token.trim()) { |
|
|
if (token && token.trim()) { |
|
|
@ -66,7 +66,7 @@ |
|
|
console.log('检测到浏览器/标签页关闭,已自动退出登录 - rqrq') |
|
|
console.log('检测到浏览器/标签页关闭,已自动退出登录 - rqrq') |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}, 50) |
|
|
|
|
|
|
|
|
}, 100) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|