package auth import ( "net/http" "strings" "github.com/gin-gonic/gin" ) func AuthMiddleware() gin.HandlerFunc { return func(c *gin.Context) { authHeader := c.GetHeader("Authorization") if !strings.HasPrefix(authHeader, "Bearer ") { c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Missing token"}) return } tokenStr := strings.TrimPrefix(authHeader, "Bearer ") claims, err := ParseJWT(tokenStr) if err != nil { c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Invalid token"}) return } c.Set("userId", claims.UserID) c.Set("email", claims.Email) c.Set("role", claims.Role) c.Next() } }