Verwaltungsseite: kein separater dritter Code mehr, sondern derselbe wie beim normalen Login

Fix für gemeldetes Problem: VanVans Code funktionierte nicht auf der Verwaltungsseite. Ursache
war ein dritter, komplett separater, gemeinsamer Code (6GAM4AST), den sich niemand gemerkt
hatte — VanVan gab stattdessen ihren normalen persönlichen Zugangscode ein, der dort aber nicht
galt. Jetzt auf ausdrücklichen Wunsch vereinheitlicht: die Verwaltungsseite prüft denselben
persönlichen Code wie der normale Seitenzugang (SITE_ACCESS_CODE_QCIGA/_VANVAN). Die tägliche
Neueingabe-Pflicht bleibt bestehen (eigene Sitzung mit 24h statt 90 Tagen Gültigkeit) — nur der
geprüfte Code ist jetzt kein separater dritter mehr. Das alte Secret VERWALTUNG_ACCESS_CODE wird
nicht mehr verwendet. Lokal mit wrangler pages dev end-to-end getestet (beide Codes + alter Code
korrekt abgelehnt).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
qcigano
2026-08-04 12:54:01 +02:00
co-authored by Claude Sonnet 5
parent 850aed2f9e
commit c1504bef92
3 changed files with 46 additions and 35 deletions
+14 -14
View File
@@ -1,22 +1,22 @@
/* =====================================================================
functions/_shared/verwaltung-auth.js — ZWEITE, ZUSÄTZLICHE Zugangsschranke NUR für
/verwaltung/ + /api/verwaltung/* — auf ausdrücklichen Wunsch: ein einziger, gemeinsamer,
FESTER Code (VERWALTUNG_ACCESS_CODE), den nur qciga und VanVan kennen, unabhängig vom
normalen 90-Tage-Seitenzugang (siehe functions/_shared/auth.js). Wer die Bestellübersicht
öffnen will, braucht also BEIDE Codes — den normalen Seitenzugang UND diesen hier.
WICHTIG: Der Code selbst ändert sich NIE von selbst (kein Zufalls-/Rotationscode, keine
Tages-Ableitung) — nur die durch ihn erzeugte SITZUNG läuft nach 24 Stunden ab. Dadurch
muss derselbe, unveränderte Code einmal täglich neu eingegeben werden, statt dauerhaft
gültig zu bleiben (auf ausdrücklichen Wunsch: "ein fester Code, der aber jeden Tag einmal
eingegeben werden muss").
/verwaltung/ + /api/verwaltung/*, unabhängig vom normalen 90-Tage-Seitenzugang (siehe
functions/_shared/auth.js). Wer die Bestellübersicht öffnen will, braucht also eine gültige
Sitzung auf BEIDEN Ebenen — die Prüfung des eingegebenen Codes selbst läuft dabei nicht hier,
sondern in handleVerwaltungAuth() in functions/_middleware.js (dort wird GENAU DERSELBE
persönliche Code wie beim normalen Seitenzugang akzeptiert, SITE_ACCESS_CODE_QCIGA/_VANVAN —
ursprünglich gab es hier einen dritten, separaten Code, der aber auf ausdrücklichen Wunsch
nach echter Verwirrung bei VanVan am 04.08.2026 wieder entfernt wurde). Diese Datei kümmert
sich nur noch um die SITZUNG danach: die läuft absichtlich schon nach 24 Stunden ab (statt
90 Tage wie beim normalen Zugang), wodurch derselbe Code hier täglich neu eingegeben werden
muss.
Bewusst als eigene, kleine Kopie der HMAC-Signaturlogik statt geteiltem Code mit auth.js
(gleiches Prinzip wie bei customer-auth.js) — ein Leck bei einer Sitzungsart darf nie die
andere gefährden. Eigenes Geheimnis (VERWALTUNG_SESSION_SECRET), eigenes Cookie, eigener
einzelner Code (VERWALTUNG_ACCESS_CODE) statt getrennter Codes pro Person — hier reicht ein
gemeinsamer Code, weil es nur um diese eine zusätzliche Hürde geht, nicht um die Anzeige
einer rollenabhängigen Vorschau wie beim normalen Seitenzugang. ===================================================================== */
andere gefährden. Eigenes Geheimnis (VERWALTUNG_SESSION_SECRET), eigenes Cookie — auch wenn
der geprüfte CODE jetzt derselbe wie beim normalen Zugang ist, bleibt die SITZUNG technisch
komplett getrennt (anderes Cookie, andere Gültigkeitsdauer, eigene Signatur).
===================================================================== */
export const VERWALTUNG_COOKIE_NAME = "vandiy_verwaltung_session";
export const VERWALTUNG_SESSION_STUNDEN = 24;