Files
qciganoandClaude Sonnet 5 bf0d169015 Echtes Google-/PayPal-Login: OAuth 2.0 + PKCE, eigene Kundendatenbank, DSGVO-Selbstbedienung
Kundenkonten sind jetzt genauso echt wie die PayPal-Zahlung: server-geprüftes OAuth 2.0 mit
PKCE für Google und "Log in with PayPal" (functions/_shared/oauth.js, oauth-handlers.js),
neue D1-Tabelle "customers" (bewusst ohne Passwort-Feld), eigene von der Zugangscode-Schranke
getrennte Sitzungs-Logik (customer-auth.js). Echte DSGVO-Rechte direkt im Kontobereich:
Daten herunterladen (Art. 15/20) und Konto unwiderruflich löschen (Art. 17), Bestellungen
bleiben aus gesetzlichen Gründen erhalten. Datenschutzerklärung entsprechend ergänzt.

Ohne echte Google-/PayPal-Zugangsdaten zeigt der Login-Button ehrlich einen
"noch nicht eingerichtet"-Hinweis statt eine Anmeldung vorzutäuschen.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-04 01:45:55 +02:00

21 lines
1.1 KiB
JavaScript

/* =====================================================================
GET /api/account/me — liefert den eingeloggten Kundenkonto-Datensatz (oder ok:false, wenn
keine gültige Sitzung vorliegt). Wird vom Frontend (siehe scripts/account.ts-Brücke in
konto/index.astro + konto/angemeldet.astro) genutzt, um die echte Server-Sitzung mit dem
bisherigen, rein lokalen Demo-Kontosystem abzugleichen — bewusst ok:false statt 401, weil
diese Route aktiv zum "unauffällig nachschauen, ob schon eine Sitzung besteht" gedacht ist,
nicht zur Absicherung einer geschützten Aktion. ===================================================================== */
import { json } from "../../_shared/http.js";
import { getCustomer } from "../../_shared/customer-auth.js";
export async function onRequestGet(context) {
const { request, env } = context;
const customer = await getCustomer(request, env);
if (!customer) return json(200, { ok: false });
return json(200, {
ok: true,
customer: { email: customer.email, name: customer.name, provider: customer.provider, seit: customer.created_at },
});
}