|
|
package api |
|
|
|
|
|
import ( |
|
|
"augment2api/config" |
|
|
"augment2api/pkg/logger" |
|
|
"fmt" |
|
|
"net/http" |
|
|
"strings" |
|
|
|
|
|
"github.com/gin-gonic/gin" |
|
|
) |
|
|
|
|
|
|
|
|
func AuthMiddleware() gin.HandlerFunc { |
|
|
return func(c *gin.Context) { |
|
|
|
|
|
if config.AppConfig.AuthToken == "" { |
|
|
c.Next() |
|
|
return |
|
|
} |
|
|
|
|
|
authHeader := c.GetHeader("Authorization") |
|
|
if authHeader == "" { |
|
|
logger.Log.Error("Authorization is empty") |
|
|
c.JSON(http.StatusUnauthorized, gin.H{"error": "Authorization header is required"}) |
|
|
c.Abort() |
|
|
return |
|
|
} |
|
|
|
|
|
|
|
|
token := strings.TrimPrefix(authHeader, "Bearer ") |
|
|
token = strings.TrimSpace(token) |
|
|
|
|
|
if token != config.AppConfig.AuthToken { |
|
|
logger.Log.Error(fmt.Sprintf("Invalid authorization token:%s", token)) |
|
|
c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid authorization token"}) |
|
|
c.Abort() |
|
|
return |
|
|
} |
|
|
|
|
|
c.Next() |
|
|
} |
|
|
} |
|
|
|