Merge pull request #512 from paulmeier/fix/oidc-sso-state-403-510

fix(oidc): make SSO callback idempotent + evict stale legacy service worker (#510)
This commit is contained in:
Dionisio Pozo
2026-06-21 19:22:15 +02:00
committed by GitHub
3 changed files with 64 additions and 7 deletions
@@ -0,0 +1,28 @@
export async function killLegacyServiceWorker(): Promise<void> {
if (typeof navigator === 'undefined' || !('serviceWorker' in navigator)) return;
try {
const registrations = await navigator.serviceWorker.getRegistrations();
const legacy = registrations.filter((r) => {
const url = r.active?.scriptURL ?? r.waiting?.scriptURL ?? r.installing?.scriptURL ?? '';
return url.endsWith('/sw.js');
});
if (legacy.length === 0) return;
await Promise.all(legacy.map((r) => r.unregister()));
if ('caches' in window) {
const keys = await caches.keys();
await Promise.all(
keys.filter((k) => k.startsWith('oxicloud-cache')).map((k) => caches.delete(k))
);
}
if (navigator.serviceWorker.controller && !sessionStorage.getItem('legacy-sw-killed')) {
sessionStorage.setItem('legacy-sw-killed', '1');
location.reload();
}
} catch {
/* best-effort cleanup */
}
}