Код IT
← Каталог

Первая программа на Gin — Пример — middleware для API key

Фрагмент из «Первая программа на Gin»: Пример — middleware для API key.

Go main.go
func apiKeyGuard(expected string) gin.HandlerFunc {
    return func(c *gin.Context) {
        key := c.GetHeader("X-API-Key")
        if key == "" {
            c.JSON(http.StatusUnauthorized, gin.H{"error": "missing api key"})
            c.Abort()
            return
        }
        if key != expected {
            c.JSON(http.StatusForbidden, gin.H{"error": "invalid api key"})
            c.Abort()
            return
        }
        c.Next()
    }
}

// api := r.Group("/api")
// api.Use(apiKeyGuard("dev-secret"))
func apiKeyGuard(expected string) gin.HandlerFunc {
    return func(c *gin.Context) {
        key := c.GetHeader("X-API-Key")
        if key == "" {
            c.JSON(http.StatusUnauthorized, gin.H{"error": "missing api key"})
            c.Abort()
            return
        }
        if key != expected {
            c.JSON(http.StatusForbidden, gin.H{"error": "invalid api key"})
            c.Abort()
            return
        }
        c.Next()
    }
}

// api := r.Group("/api")
// api.Use(apiKeyGuard("dev-secret"))