Add authentication middleware to HTTP handlers

This commit is contained in:
bronku 2025-03-21 19:38:10 +01:00
parent 5d6bbdb943
commit c504f8c597
2 changed files with 37 additions and 4 deletions

31
auth/auth.go Normal file
View file

@ -0,0 +1,31 @@
package auth
import (
"net/http"
"strconv"
)
type Authenticator struct {
}
func (a *Authenticator) Authenticate(in http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
c := http.Cookie{
Name: "RequestCounter",
}
cookie, err := r.Cookie("RequestCounter")
if err != nil {
cookie = &http.Cookie{
Value: "0",
}
}
count, err := strconv.Atoi(cookie.Value)
if err != nil {
c.Value = "1"
} else {
c.Value = strconv.Itoa(count + 1)
}
http.SetCookie(w, &c)
in(w, r)
}
}