Frontend: Registrierung angebunden (POST /auth/newuser)
- Umschalter Login <-> Registrieren im Auth-Bereich
- Fehlerlisten-Anzeige ({"errors": [...]}) fuer newuser
- nach erfolgreicher Registrierung automatischer Login
- Logout setzt Ansicht auf Login zurueck
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+42
-5
@@ -34,22 +34,59 @@ async function refreshHeader() {
|
||||
});
|
||||
} else {
|
||||
bar.innerHTML = "";
|
||||
showAuth("login");
|
||||
}
|
||||
}
|
||||
|
||||
// --- Login ---
|
||||
document.getElementById("login-form").addEventListener("submit", async (e) => {
|
||||
// --- Login / Registrierung ---
|
||||
const loginForm = document.getElementById("login-form");
|
||||
const registerForm = document.getElementById("register-form");
|
||||
const authMsg = document.getElementById("auth-msg");
|
||||
|
||||
function showAuth(which) {
|
||||
loginForm.hidden = which !== "login";
|
||||
registerForm.hidden = which !== "register";
|
||||
authMsg.textContent = "";
|
||||
}
|
||||
|
||||
document.getElementById("show-register").addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
showAuth("register");
|
||||
});
|
||||
document.getElementById("show-login").addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
showAuth("login");
|
||||
});
|
||||
|
||||
loginForm.addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
const res = await api.post("/auth/login", new FormData(e.target));
|
||||
const msg = document.getElementById("auth-msg");
|
||||
if (res.ok) {
|
||||
msg.textContent = "";
|
||||
await refreshHeader();
|
||||
} else {
|
||||
msg.textContent = res.data.error || "Login fehlgeschlagen.";
|
||||
authMsg.textContent = res.data.error || "Login fehlgeschlagen.";
|
||||
}
|
||||
});
|
||||
|
||||
registerForm.addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
const data = new FormData(e.target);
|
||||
const res = await api.post("/auth/newuser", data);
|
||||
if (!res.ok) {
|
||||
// newuser liefert eine Fehlerliste ({"errors": [...]}).
|
||||
const errors = res.data.errors || [res.data.error || "Registrierung fehlgeschlagen."];
|
||||
authMsg.textContent = errors.join(" ");
|
||||
return;
|
||||
}
|
||||
// Direkt mit denselben Daten einloggen, damit der Nutzer gleich drin ist.
|
||||
const login = new FormData();
|
||||
login.append("user", data.get("user"));
|
||||
login.append("pass", data.get("pass1"));
|
||||
login.append("timeout", "86400");
|
||||
await api.post("/auth/login", login);
|
||||
await refreshHeader();
|
||||
});
|
||||
|
||||
// --- Neuer Beitrag ---
|
||||
document.getElementById("entry-form").addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
Reference in New Issue
Block a user