28 lines
996 B
Go
28 lines
996 B
Go
package backend
|
|
|
|
import "net/http"
|
|
|
|
// InitAuth bereitet die Session-/Login-Verwaltung vor.
|
|
//
|
|
// Sicherheitslage: Dieses Tool haelt IMAP-Zugangsdaten fremder Postfaecher und
|
|
// kann per SMTP Mails verschicken. Es darf NIE offen im Netz stehen.
|
|
// - Default: bind 127.0.0.1 (nur lokal), Login mit admin_user/admin_pass.
|
|
// - Wenn spaeter remote erreichbar (hinter Caddy): /vadmin-Mail-2FA-Muster
|
|
// aus dem Web-Deploy-Kit vorschalten.
|
|
func InitAuth() error {
|
|
// TODO Codex: Session-Cookie-Store initialisieren.
|
|
return nil
|
|
}
|
|
|
|
// AuthMiddleware schuetzt alle Routen ausser /login und /static.
|
|
func AuthMiddleware(next http.Handler) http.Handler {
|
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
// TODO Codex: /login + /static durchlassen, sonst Session pruefen,
|
|
// sonst Redirect /login.
|
|
next.ServeHTTP(w, r)
|
|
})
|
|
}
|
|
|
|
func loginHandler(w http.ResponseWriter, r *http.Request) {
|
|
// TODO Codex: Formular, Abgleich mit Cfg.AdminUser/AdminPass, Cookie setzen.
|
|
}
|