Verwaltungs-Code statt Tages-Code: Begriff klargestellt (Code ist fest, nur Sitzung läuft täglich ab)

Der Name "Tages-Code" konnte fälschlich als sich täglich änderndem/rotierendem Code
verstanden werden. Tatsächlich bleibt der Code dauerhaft gleich (6GAM4AST) — nur die
24h-Sitzung läuft ab, wodurch derselbe Code einmal pro Tag erneut eingegeben werden
muss. Reine Text-/Kommentar-Korrektur, keine Verhaltensänderung.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
qcigano
2026-08-04 11:54:56 +02:00
co-authored by Claude Sonnet 5
parent aff961816b
commit b70bad3e41
5 changed files with 33 additions and 23 deletions
+11 -8
View File
@@ -32,9 +32,10 @@
NICHT dauerhaft geschützt — das muss auch für echte Kund:innen erreichbar sein, sobald der
Shop öffentlich ist, genau wie der Checkout selbst.
- /verwaltung/* + /api/verwaltung/* verlangen ZUSÄTZLICH zum normalen 90-Tage-Seitenzugang
noch einen zweiten, eigenen Tages-Code (siehe functions/_shared/verwaltung-auth.js,
/verwaltung-code.html) — auf ausdrücklichen Wunsch, damit die Bestellübersicht auch bei
einer kompromittierten/geteilten normalen Sitzung nicht dauerhaft offen bleibt.
noch einen zweiten, eigenen, FESTEN Code (siehe functions/_shared/verwaltung-auth.js,
/verwaltung-code.html) — auf ausdrücklichen Wunsch. Der Code selbst ändert sich NICHT von
selbst (kein Zufalls-/Rotationscode) — nur die SITZUNG läuft nach 24 Stunden ab, wodurch
derselbe Code einmal täglich neu eingegeben werden muss, statt für immer gültig zu bleiben.
- API-Routen (/api/*) bekommen bei fehlender Sitzung eine 401-JSON-Antwort statt der
302-Weiterleitung zur Zugangscode-Seite — ein fetch() im Checkout/Verwaltung-Skript soll
einen klaren Fehler sehen, nicht versehentlich HTML als Antwort bekommen.
@@ -108,9 +109,11 @@ async function handleAuth(request, env) {
return new Response(JSON.stringify({ ok: true, next }), { status: 200, headers });
}
/* Gegenstück zu handleAuth() oben, aber für den zweiten, verwaltungseigenen Tages-Code —
bewusst EIN gemeinsamer Code (kein Unterschied qciga/VanVan), da es hier nur um die
zusätzliche Hürde geht, nicht um eine rollenabhängige Anzeige. */
/* Gegenstück zu handleAuth() oben, aber für den zweiten, verwaltungseigenen Code — bewusst EIN
gemeinsamer, FESTER Code (kein Unterschied qciga/VanVan, keine Rotation), da es hier nur um
die zusätzliche Hürde geht, nicht um eine rollenabhängige Anzeige. Nur die dadurch erzeugte
SITZUNG läuft nach 24h ab (siehe VERWALTUNG_SESSION_STUNDEN unten) — der Code selbst bleibt
unverändert, bis ihn qciga manuell über "wrangler pages secret put" ändert. */
async function handleVerwaltungAuth(request, env) {
let body;
try {
@@ -125,7 +128,7 @@ async function handleVerwaltungAuth(request, env) {
const next = typeof body.next === "string" && body.next.startsWith("/") ? body.next : "/verwaltung/";
if (!env.VERWALTUNG_ACCESS_CODE || code !== env.VERWALTUNG_ACCESS_CODE) {
return new Response(JSON.stringify({ ok: false, error: "Falscher Tages-Code." }), {
return new Response(JSON.stringify({ ok: false, error: "Falscher Code." }), {
status: 401,
headers: { "Content-Type": "application/json" },
});
@@ -217,7 +220,7 @@ export async function onRequest(context) {
}
if (url.pathname.startsWith("/api/")) {
return new Response(JSON.stringify({ ok: false, error: "Tages-Code für die Verwaltung erforderlich." }), {
return new Response(JSON.stringify({ ok: false, error: "Zusätzlicher Verwaltungs-Code erforderlich." }), {
status: 401,
headers: { "Content-Type": "application/json" },
});