Abmelden meldet jetzt wirklich ab
Rueckmeldung: 'der abmelde button klappt auch nicht auf dem handy'. Die Ursache war nicht das Handy -- der Fehler war auf beiden Geraeten derselbe, auf dem Handy sieht man das kurze Aufblitzen nur eher. Der Knopf beendete die Team-Sitzung, loeschte den Schluessel und lud neu. Das Merkmal der Zugangswand blieb dabei im Browser stehen. Beim Neuladen holt sich die Seite damit sofort wieder einen Ausweis -- man war nach einer Zehntelsekunde erneut angemeldet, und der Knopf schien nichts zu tun. Jetzt werden BEIDE Sitzungen beendet (der Endpunkt dafuer gab es laengst, die Verwaltung rief ihn nur nie auf), und man landet an der Zugangswand statt in einer Codeeingabe. Das ist auch die ehrliche Bedeutung des Wortes: Wer sich abmeldet, will draussen sein. Beide Aufrufe sind einzeln abgesichert -- faellt einer aus, laeuft der andere trotzdem. Ein halbes Abmelden waere schlimmer als keins: Man hielte sich fuer abgemeldet und waere es nicht. Geprueft mit 16 Pruefungen auf Computer und Handy, die messen, was tatsaechlich hinausgeht statt ob sich etwas auf dem Schirm bewegt. Dabei ein Artefakt im eigenen Test gefunden und behoben: Das Vorbereitungsskript lief bei jeder Navigation und setzte den Schluessel auf der Zugangswand gleich wieder -- zwei Pruefungen massen also sich selbst. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+1
-1
@@ -34,7 +34,7 @@
|
||||
Start alle alten Zwischenspeicher weg. Muss bei jeder Änderung an den
|
||||
Dateien unten hochgezählt werden, sonst hängen Nutzer auf einem alten
|
||||
Stand fest. */
|
||||
const CACHE_NAME = "dogfather-webdesign-v25";
|
||||
const CACHE_NAME = "dogfather-webdesign-v26";
|
||||
|
||||
/* Bausteine, die die Oberfläche zum Anzeigen braucht. Bewusst KEINE
|
||||
HTML-Datei in dieser Liste. */
|
||||
|
||||
@@ -1492,10 +1492,44 @@
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("vw-abmelden").addEventListener("click", async function () {
|
||||
try { await api("/auth/logout", { method: "POST", body: {} }); } catch (e) { /* egal */ }
|
||||
token = null; tokenSchreiben(null);
|
||||
location.reload();
|
||||
document.getElementById("vw-abmelden").addEventListener("click", async function (e) {
|
||||
/* ABMELDEN MUSS AUCH DIE ZUGANGSWAND BEENDEN.
|
||||
|
||||
Vorher tat der Knopf scheinbar nichts (Rueckmeldung 23.08.2026:
|
||||
"der abmelde button klappt auch nicht auf dem handy"). Er beendete
|
||||
die Team-Sitzung, loeschte den Schluessel und lud neu -- aber das
|
||||
Merkmal der Zugangswand blieb im Browser stehen. Beim Neuladen holt
|
||||
sich die Seite damit sofort wieder einen Ausweis und ist nach einer
|
||||
Zehntelsekunde erneut angemeldet. Auf dem Handy faellt es mehr auf,
|
||||
weil man das kurze Aufblitzen dort eher sieht -- der Fehler war auf
|
||||
beiden Geraeten derselbe.
|
||||
|
||||
Deshalb jetzt BEIDE Sitzungen beenden. Das ist auch die ehrliche
|
||||
Bedeutung des Wortes: Wer sich abmeldet, will draussen sein und
|
||||
nicht in einem halb offenen Zustand zurueckbleiben.
|
||||
|
||||
Die Reihenfolge ist wichtig: erst die Zugangswand, dann neu laden.
|
||||
Umgekehrt waere die Seite schon weg, bevor der Aufruf hinausgeht. */
|
||||
window.WD.knopfSperren(e.target, true, "Wird abgemeldet…");
|
||||
|
||||
/* Beide Aufrufe einzeln absichern: Faellt einer aus, soll der andere
|
||||
trotzdem laufen. Ein halbes Abmelden waere schlimmer als keins --
|
||||
man haelte sich fuer abgemeldet und waere es nicht. */
|
||||
try { await api("/auth/logout", { method: "POST", body: {} }); } catch (f) { /* egal */ }
|
||||
try {
|
||||
await fetch("/webdesign/zugang-beenden", {
|
||||
method: "POST", credentials: "same-origin",
|
||||
headers: { "content-type": "application/json" }, body: "{}",
|
||||
});
|
||||
} catch (f) { /* egal */ }
|
||||
|
||||
token = null; tokenQuelle = null; tokenSchreiben(null);
|
||||
try { sessionStorage.removeItem("wd-sitzung-aktiv"); } catch (f) { /* egal */ }
|
||||
|
||||
/* Zur Zugangswand statt neu laden. Ein Neuladen der Verwaltung
|
||||
zeigte nur die Codeeingabe -- und liesse offen, ob man nun
|
||||
draussen ist oder nicht. */
|
||||
location.href = "/webdesign/zugang.html";
|
||||
});
|
||||
|
||||
/* ---------------- Liste ---------------- */
|
||||
|
||||
Reference in New Issue
Block a user