Clear-Site-Data für Nuxt 3 konfigurieren
Schritt-für-Schritt: Browser-Daten beim Logout in Nuxt 3 zuverlässig löschen — Cookies, Cache und Storage per Nitro API Route mit setHeader().
Clear-Site-Data in Nuxt 3
Clear-Site-Data weist den Browser an, gespeicherte Daten zu löschen — Cookies, Cache, Storage oder alle gleichzeitig. Dieser Header ist besonders nützlich beim Logout, um alle Session-Daten zuverlässig aus dem Browser zu entfernen. Mit 3 von 166 Punkten ist Clear-Site-Data ein Faktor im Wolf-Agents Web Security Check.
In Nuxt 3 setzen Sie den Clear-Site-Data-Header in der Logout-API-Route per setHeader() aus dem Nitro-Server-Kontext. Der Header darf nur auf der Logout-Route gesetzt werden — auf anderen Seiten würde der Browser bei jedem Request alle Daten löschen. Für Anwendungen mit mehreren Logout-Routen bietet sich eine Nitro Server Middleware an.
Clear-Site-Data in Nuxt 3 konfigurieren
Setzen Sie den Header in Ihrer Nitro Logout-API-Route. Die Werte "cache", "cookies" und "storage" löschen Browser-Cache, alle Cookies und localStorage/sessionStorage/IndexedDB. Für komplexere Setups mit mehreren Logout-Routen nutzen Sie die Middleware-Variante.
// server/api/auth/logout.post.ts — Clear-Site-Data
export default defineEventHandler((event) => {
// Alle Browser-Daten beim Logout löschen
setHeader(event,
'Clear-Site-Data',
'"cache", "cookies", "storage"'
);
// Session-Cookie explizit löschen
deleteCookie(event, 'session');
// Redirect zur Startseite
return sendRedirect(event, '/', 302);
}) // server/middleware/clear-site-data.ts
// Middleware-Ansatz für mehrere Logout-Routen
const LOGOUT_ROUTES = [
'/api/auth/logout',
'/api/auth/signout',
'/api/auth/revoke',
];
export default defineEventHandler((event) => {
const path = getRequestURL(event).pathname;
if (LOGOUT_ROUTES.includes(path)) {
// Header nur auf Logout-Routen setzen
event.node.res.on('finish', () => {});
setHeader(event,
'Clear-Site-Data',
'"cache", "cookies", "storage"'
);
}
}) // composables/useLogout.ts — Client-seitige Integration
export function useLogout() {
const { clear } = useUserSession();
const logout = async () => {
await $fetch('/api/auth/logout', {
method: 'POST',
});
// Session-State clientseitig bereinigen
clear();
// Seite neu laden — Clear-Site-Data wirkt beim Response
window.location.href = '/';
};
return { logout };
} sendRedirect() statt JSON-Response? Clear-Site-Data löscht Cookies sofort — auch den Session-Cookie. Ein JSON-Response würde den Client in einem ausgeloggten Zustand lassen, ohne Redirect. Mit sendRedirect() wird der Nutzer direkt zur Startseite weitergeleitet, während der Browser die Daten löscht.
Header verifizieren
Erstellen Sie einen Production-Build und prüfen Sie den Clear-Site-Data-Header auf der Logout-Route. Stellen Sie sicher, dass der Header auf normalen Seiten nicht erscheint. Der Wolf-Agents Web Security Check prüft den Header automatisch auf der Logout-Route.
# Production-Build und Header prüfen
npx nuxi build
node .output/server/index.mjs
# Clear-Site-Data auf Logout-Route prüfen
curl -sI -X POST https://ihre-domain.de/api/auth/logout | grep -i clear-site
# Erwartete Ausgabe:
# clear-site-data: "cache", "cookies", "storage"
# Sicherstellen: Header NICHT auf normalen Seiten
curl -sI https://ihre-domain.de | grep -i clear-site
# Erwartete Ausgabe: (leer — kein Header) // Nur Cookies löschen (minimaler Ansatz)
setHeader(event,
'Clear-Site-Data',
'"cookies"'
);
// Alles löschen inkl. Execution Contexts (maximaler Reset)
setHeader(event,
'Clear-Site-Data',
'"*"'
);
// Cache und Storage löschen, Cookies behalten
setHeader(event,
'Clear-Site-Data',
'"cache", "storage"'
); Häufige Fehler
Header auf allen Seiten gesetzt
Clear-Site-Data in einer globalen Middleware ohne Route-Filter löscht Cache, Cookies und Storage bei jedem Request. Die Website wird unbenutzbar. Prüfen Sie immer den Request-Pfad in der Middleware.
Safari-Support eingeschränkt
Safari unterstützt Clear-Site-Data nur teilweise. Implementieren Sie clientseitiges Cleanup per JavaScript als Fallback — localStorage.clear() und sessionStorage.clear().
Service Worker nicht gelöscht
"cache" löscht den HTTP-Cache, aber nicht den Service-Worker-Cache. Nutzen Sie "storage" um auch IndexedDB, Service Worker Registrations und Cache Storage API zu entfernen.
Anführungszeichen vergessen
Die Werte müssen in Anführungszeichen stehen: "cache", "cookies". Ohne Quotes wird der Header ignoriert. In TypeScript: '"cache", "cookies"' — einfache Quotes umschließen doppelte.
Compliance-Relevanz
DSGVO (Art. 17 — Recht auf Löschung) erfordert die technische Umsetzung der Datenlöschung — Clear-Site-Data entfernt personenbezogene Daten aus dem Browser beim Logout. PCI DSS verlangt die sichere Beendigung von Sessions inklusive Löschung temporärer Daten. OWASP empfiehlt die Bereinigung clientseitiger Daten bei Session-Terminierung. Der Wolf-Agents Web Security Check bewertet Clear-Site-Data mit bis zu 3 Punkten und prüft die korrekte Konfiguration auf der Logout-Route.
Wie steht Ihre Domain bei Clear-Site-Data?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.