package middlewares import ( "net/http" "sonarqube-badge/security/jwt" ) func CheckJwtToken(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { tokenCookie, err := r.Cookie("jwt-token") if err != nil || tokenCookie == nil { if r.Method == "GET" { http.Redirect(w, r, "/login", http.StatusTemporaryRedirect) } else { w.WriteHeader(http.StatusUnauthorized) } return } _, err = jwt.VerifyToken(tokenCookie.Value, r.Context()) if err != nil { if r.Method == "GET" { http.Redirect(w, r, "/login", http.StatusTemporaryRedirect) } else { w.WriteHeader(http.StatusUnauthorized) } return } h.ServeHTTP(w, r) }) }