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]>
21 lines
1.1 KiB
JavaScript
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 },
|
|
});
|
|
}
|