sonarqube-badges/router/middlewares/checkAuth.go
2025-03-15 01:49:52 +01:00

32 lines
716 B
Go

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)
})
}