fix: refresh auth token on tab visibility change to prevent logout after inactivity

This commit is contained in:
2026-02-07 10:28:15 +01:00
parent d076bff10c
commit fc1a1ede66

View File

@@ -47,6 +47,7 @@ class DirectusService {
this.refreshTimeout = null this.refreshTimeout = null
this.loadTokens() this.loadTokens()
this.setupVisibilityRefresh()
} }
// ==================== Token Management ==================== // ==================== Token Management ====================
@@ -109,6 +110,17 @@ class DirectusService {
} }
} }
setupVisibilityRefresh() {
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'visible' && this.refreshToken) {
const timeLeft = this.tokenExpiry - Date.now()
if (timeLeft < 60000) {
this.refreshSession()
}
}
})
}
isAuthenticated() { isAuthenticated() {
return !!this.accessToken && (!this.tokenExpiry || Date.now() < this.tokenExpiry) return !!this.accessToken && (!this.tokenExpiry || Date.now() < this.tokenExpiry)
} }