Files
soft_usite/rest/middlewares/hermes_auth.go
T

33 lines
596 B
Go

package middlewares
import (
"os"
"strings"
"github.com/gofiber/fiber/v2"
)
func HermesAuth() fiber.Handler {
return func(c *fiber.Ctx) error {
apiKey := os.Getenv("HERMES_API_KEY")
if apiKey == "" {
return c.Status(503).JSON(fiber.Map{"error": "HERMES_API_KEY not configured"})
}
token := ""
auth := c.Get("Authorization")
if strings.HasPrefix(auth, "Bearer ") {
token = auth[7:]
}
if token == "" {
token = c.Get("X-API-Key")
}
if token == "" || token != apiKey {
return c.Status(401).JSON(fiber.Map{"error": "unauthorized"})
}
return c.Next()
}
}