From 1f0d9ec8452f15c27cd33c4e3874454c35993743 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Tue, 8 Apr 2025 14:37:33 +0200 Subject: Use internal/pkg structure --- internal/api/middleware/middleware.go | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 internal/api/middleware/middleware.go (limited to 'internal/api/middleware') diff --git a/internal/api/middleware/middleware.go b/internal/api/middleware/middleware.go new file mode 100644 index 0000000..0334e78 --- /dev/null +++ b/internal/api/middleware/middleware.go @@ -0,0 +1,36 @@ +package middleware + +import ( + "encoding/json" + "net/http" + + "github.com/boozec/rahanna/internal/api/auth" +) + +func AuthMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + tokenString := r.Header.Get("Authorization") + + payloadMap := map[string]string{"error": "unauthorized"} + payload, _ := json.Marshal(payloadMap) + + if tokenString == "" { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusUnauthorized) + + w.Write([]byte(payload)) + return + } + + _, err := auth.ValidateJWT(tokenString) + if err != nil { + w.WriteHeader(http.StatusUnauthorized) + + payload, _ := json.Marshal(payloadMap) + + w.Write([]byte(payload)) + return + } + next.ServeHTTP(w, r) + }) +} -- cgit v1.2.3-18-g5258