PageSourceSearch

https://easydesign-glued-in-rods.netlify.app/js/auth.js

js easydesign-glued-in-rods.netlify.app collected 2026-10-03 10:40:43 UTC 2,946 bytes, 104 lines download raw bytes

1// neues Konto lokal anlegen
2function registriereBenutzer() {
3  const emailFeld = document.getElementById("login-email");
4  const passFeld  = document.getElementById("login-password");
5  const status    = document.getElementById("login-status");
6
7  const email = (emailFeld.value || "").trim().toLowerCase();
8  const pass  = (passFeld.value  || "").trim();
9
10  if (!email || !pass) {
11    alert("Bitte E-Mail-Adresse und Passwort eingeben.");
12    return;
13  }
14
15  const kontoKey = "konto_" + email;
16
17  if (localStorage.getItem(kontoKey)) {
18    alert("Für diese E-Mail-Adresse ist hier im Browser bereits ein Konto angelegt.");
19    return;
20  }
21
22  // Achtung: nur Demo – Passwort wird im Klartext im Browser gespeichert.
23  // Für echte Sicherheit brauchst du ein Backend mit Hashing etc.
24  const kontoDaten = { email, passwort: pass };
25  try {
26    localStorage.setItem(kontoKey, JSON.stringify(kontoDaten));
27  } catch (e) {
28    console.error(e);
29    alert("Fehler beim Speichern des Kontos in localStorage.");
30    return;
31  }
32
33  aktuellerBenutzer = email;
34  if (status) {
35    status.textContent = "Konto angelegt und angemeldet als: " + email;
36    status.style.color = "#2b7a0b";
37  }
38
39    if (typeof aktualisiereKonfigListe === "function") {
40    aktualisiereKonfigListe();
41  }
42
43  // HIER könnte später der Aufruf an einen Server hin,
44  // der die E-Mail-Adresse an [email protected] meldet, z.B.:
45  //
46  // fetch("https://deine-domain.de/api/neuer-kunde", {
47  //   method: "POST",
48  //   headers: { "Content-Type": "application/json" },
49  //   body: JSON.stringify({ email })
50  // }).catch(console.error);
51  //
52  // Ohne Server kann aus dem Browser direkt KEINE E-Mail verschickt werden.
53
54  alert("Kundenkonto wurde lokal in diesem Browser angelegt.");
55}
56
57function loginBenutzer() {
58  const emailFeld = document.getElementById("login-email");
59  const passFeld  = document.getElementById("login-password");
60  const status    = document.getElementById("login-status");
61
62  const email = (emailFeld.value || "").trim().toLowerCase();
63  const pass  = (passFeld.value  || "").trim();
64
65  if (!email || !pass) {
66    alert("Bitte E-Mail-Adresse und Passwort eingeben.");
67    return;
68  }
69
70  const kontoKey = "konto_" + email;
71  const raw = localStorage.getItem(kontoKey);
72
73  if (!raw) {
74    alert("Für diese E-Mail-Adresse ist hier im Browser noch kein Konto angelegt. Bitte zuerst 'Kundenkonto anlegen' benutzen.");
75    return;
76  }
77
78  let konto;
79  try {
80    konto = JSON.parse(raw);
81  } catch (e) {
82    console.error(e);
83    alert("Konto-Daten sind beschädigt oder konnten nicht gelesen werden.");
84    return;
85  }
86
87  if (!konto || konto.passwort !== pass) {
88    alert("Passwort stimmt nicht.");
89    return;
90  }
91
92  aktuellerBenutzer = email;
93  if (status) {
94    status.textContent = "Angemeldet als: " + email;
95    status.style.color = "#2b7a0b";
96  }
97
98  if (typeof aktualisiereKonfigListe === "function") {
99    aktualisiereKonfigListe();
100  }
101}
102
103
104

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.