/** * auth.js – Kommunikation mit dem Backend für Registrierung und Login. * Nutzt die Fetch-API mit einfachem Header-basiertem Authentifizierungsschema. * * Sicherheitshinweis: Passwörter werden unverschlüsselt als HTTP-Header übertragen. * Dies ist bewusst vereinfacht (kein TLS/HTTPS in der lokalen Entwicklungsumgebung). * In einer Produktionsumgebung müssten JWT-Tokens oder Sessions eingesetzt werden. */ const BASE_URL = "http://localhost:3000/api"; /** * Registriert einen neuen Benutzer beim Backend. * Das Backend vergibt ein Standard-Passwort ("1234"). * @param {string} username - Gewünschter Benutzername * @returns {Promise} Objekt mit name und password */ export async function register(username) { const res = await fetch(`${BASE_URL}/user`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ username }) }); return res.json(); } /** * Meldet einen Benutzer an. * Credentials werden als HTTP-Header übermittelt (X-Username, X-Password). * @param {string} username * @param {string} password * @returns {Promise} true bei Erfolg (HTTP 200), false bei falschen Credentials */ export async function login(username, password) { const res = await fetch(`${BASE_URL}/user`, { method: "GET", headers: { "X-Username": username, "X-Password": password } }); // HTTP 200 = Anmeldung erfolgreich, 401 = ungültige Credentials return res.status === 200; }