Moderation entfernt, JSON-API unter /api
- Moderationsseite und Melde-Funktion (report) komplett ausgebaut; folgt als eigenständiges Projekt - alle API-Endpunkte unter /api, dort ausschließlich JSON: auch 404, 405, Rate-Limit (429) und Panics (500) - Fehler nur über HTTP-Status; stille DB-Fehler in stats, logout und Vote-Zählern liefern jetzt 500 statt Nullen - /auth/headerbar entfernt (Frontend nutzt /api/user/info) - Frontend auf /api und statusbasierte Auswertung umgestellt - notes/api.md neu als Referenz der aktuellen API Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TiXsPUqw7oeomZ8wZrQW5q
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
2714fdb1a5
commit
030a5bd943
@@ -133,9 +133,13 @@ func startSession(w http.ResponseWriter, r *http.Request, uid int64) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleLogout(w http.ResponseWriter, r *http.Request) {
|
||||
func handleLogout(w http.ResponseWriter, r *http.Request) error {
|
||||
// Scheitert das Löschen, bliebe die Session serverseitig gültig -- das
|
||||
// muss der Client erfahren, statt ein "ok" zu sehen.
|
||||
if s, ok := getSession(r); ok {
|
||||
db.Exec(`DELETE FROM session WHERE value = $1`, s.Value)
|
||||
if _, err := db.Exec(`DELETE FROM session WHERE value = $1`, s.Value); err != nil {
|
||||
return Internal(err)
|
||||
}
|
||||
}
|
||||
http.SetCookie(w, &http.Cookie{
|
||||
Name: "session",
|
||||
@@ -148,6 +152,7 @@ func handleLogout(w http.ResponseWriter, r *http.Request) {
|
||||
SameSite: http.SameSiteLaxMode,
|
||||
})
|
||||
writeJSON(w, http.StatusOK, map[string]string{"status": "ok"})
|
||||
return nil
|
||||
}
|
||||
|
||||
// handleNewUser sammelt alle Validierungsfehler ein, statt beim ersten
|
||||
@@ -210,11 +215,6 @@ func handleSessionInfo(w http.ResponseWriter, r *http.Request) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleHeaderbar(w http.ResponseWriter, r *http.Request) {
|
||||
_, ok := getSession(r)
|
||||
writeJSON(w, http.StatusOK, map[string]bool{"loggedin": ok})
|
||||
}
|
||||
|
||||
func sanitizeUsername(u string) string {
|
||||
u = strings.TrimSpace(u)
|
||||
// Auf 32 Zeichen (Runen) kürzen, nicht 32 Bytes -- sonst kann der Schnitt
|
||||
|
||||
Reference in New Issue
Block a user