From 5a5912636d6bf896af9e116f9fae9d2872fb0b45 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Fri, 21 Aug 2026 17:48:08 +0200 Subject: [PATCH] =?UTF-8?q?Registrierung:=20E-Mail-Best=C3=A4tigung=20per?= =?UTF-8?q?=20Einmalcode=20vor=20dem=20Zugangscode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nutzer-Wunsch 21.08.2026: "bei der ersten registrierung sollen die eine email bekommen mit einem einmaligen code damit wir auch wissen dass email stimmt und danach wenn sie den code eingegeben haben sollen die erst ihren zugangscode auswählen/eintippen können." Damit wird eine echte Lücke geschlossen: registerSupporter() hat bisher `email_verified = 1` gesetzt, OHNE dass irgendetwas geprüft wurde -- man konnte sich mit einer fremden oder erfundenen Adresse registrieren und kam sofort rein. Neuer Ablauf in drei Schritten: 1. Name/TikTok/E-Mail -> Konto wird als UNBESTÄTIGT angelegt (email_verified = 0, noch kein Zugangscode). Es kommt bewusst KEIN Session-Token zurück -- eingeloggt ist man hier noch nicht. 2. Einmalcode aus der E-Mail eingeben -> verify-email bestätigt und loggt ein. Die Willkommens-Mail wandert hierher, sie ging vorher an eine noch ungeprüfte Adresse. 3. Erst jetzt den eigenen Zugangscode festlegen. Serverseitig abgesichert: setSupporterAccessCode() lehnt ab, solange die E-Mail nicht bestätigt ist -- der Schritt ist damit nicht nur im Formular versteckt, sondern auch per Direktaufruf nicht überspringbar. Wiederverwendet wird die bereits vorhandene Mechanik (issueAuthCode/ verifyAuthCode mit Zweck "verify_email", sendVerifyEmailCode, die Panels #panel-code und #panel-neuer-code) -- der "Code vergessen?"-Weg nutzt dieselbe Code-Eingabe und bleibt unverändert; eine neue Variable codeZweck unterscheidet, welcher Endpunkt aufgerufen wird. Mit Playwright end-to-end geprüft (14 Tests): Reihenfolge der Aufrufe, kein Token vor der Bestätigung, falscher Code kommt nicht weiter, Zugangscode-Feld erst im letzten Schritt, "Code vergessen?" unberührt. Cache-Busting-Version auf 20260821o erhöht. Co-Authored-By: Claude Opus 5 --- 404.html | 12 ++--- abonnieren.html | 69 ++++++++++++++-------------- agb.html | 10 ++--- aktion-detail.html | 14 +++--- assets/js/i18n-abonnieren.js | 10 +++++ bewerben-creator.html | 14 +++--- bewerben-kooperation.html | 14 +++--- bewerben-modi.html | 14 +++--- bewerben-scout.html | 14 +++--- bewerben.html | 12 ++--- casper.html | 12 ++--- community.html | 12 ++--- creator.html | 14 +++--- dogfather.html | 12 ++--- gate.html | 4 +- hasidog.html | 12 ++--- index.html | 16 +++---- kontakt.html | 12 ++--- links.html | 12 ++--- manager.html | 14 +++--- medien-casper.html | 18 ++++---- medien-dogfather.html | 20 ++++----- medien-hasidog.html | 20 ++++----- profil.html | 20 ++++----- rabattcodes.html | 12 ++--- server-internal/routes/supporter.js | 70 ++++++++++++++++++++++------- stimmen.html | 14 +++--- streamer.html | 12 ++--- streamplan.html | 18 ++++---- supporter.html | 14 +++--- team-modis.html | 14 +++--- team-scouts.html | 14 +++--- tt-muddi.html | 12 ++--- vanvan.html | 12 ++--- verwaltung.html | 20 ++++----- werte.html | 12 ++--- zeitreise.html | 12 ++--- 37 files changed, 331 insertions(+), 286 deletions(-) diff --git a/404.html b/404.html index f154c5fb..0c8cdeab 100644 --- a/404.html +++ b/404.html @@ -18,10 +18,10 @@ Seite nicht gefunden — DOGFATHER UNIVERSE - - - - + + + + @@ -41,7 +41,7 @@ - - + + diff --git a/abonnieren.html b/abonnieren.html index 3d36e715..c5915732 100644 --- a/abonnieren.html +++ b/abonnieren.html @@ -19,10 +19,10 @@ - - - - + + + +