31 lines
709 B
Go
31 lines
709 B
Go
package middleware
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"git.ma-al.com/goc_daniel/b2b/app/config"
|
|
"github.com/gofiber/fiber/v3"
|
|
)
|
|
|
|
// CORSMiddleware creates CORS middleware
|
|
func CORSMiddleware() fiber.Handler {
|
|
return func(c fiber.Ctx) error {
|
|
|
|
if strings.Contains(c.Get("Host"), "localhost") {
|
|
c.Set("Access-Control-Allow-Origin", c.Get("Host"))
|
|
} else {
|
|
origins := strings.Join(config.Get().Cors.Origins, ",")
|
|
c.Set("Access-Control-Allow-Origin", origins)
|
|
}
|
|
|
|
c.Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
|
|
c.Set("Access-Control-Allow-Headers", "Content-Type, Authorization")
|
|
|
|
if c.Method() == "OPTIONS" {
|
|
return c.SendStatus(fiber.StatusOK)
|
|
}
|
|
|
|
return c.Next()
|
|
}
|
|
}
|