Added auth

This commit is contained in:
Pijus Kamandulis
2025-07-04 21:05:28 +03:00
parent b3c89a01d0
commit ef247fc843
13 changed files with 297 additions and 80 deletions
+42
View File
@@ -0,0 +1,42 @@
package web
import (
"net/http"
)
type LoginPageData struct {
PageDataBase
ErrorMessage string
}
func (ws *WebServer) LoginHandler(w http.ResponseWriter, r *http.Request) {
loginData := LoginPageData{}
if r.Method == http.MethodPost {
if err := r.ParseForm(); err != nil {
loginData.ErrorMessage = "Failed to parse form data"
} else {
password := r.FormValue("password")
if password != ws.adminPassword || ws.adminPassword == "" {
loginData.ErrorMessage = "Invalid password"
} else {
sessionID := generateSessionID()
if sessionID == "" {
loginData.ErrorMessage = "Failed to generate session ID"
}
ws.sessions[sessionID] = "admin"
http.SetCookie(w, &http.Cookie{
Name: "session_id",
Value: sessionID,
Path: "/",
HttpOnly: true,
})
http.Redirect(w, r, "/", http.StatusSeeOther)
}
}
}
ws.renderTemplate(w, r, "templates/login.html", &loginData)
}