package middleware

import (
	"material_texture/pkg/response"

	"github.com/gin-gonic/gin"
)

const (
	HeaderAPIToken = "X-API-Token"
)

// TokenAuth 简单Token认证中间件
func TokenAuth(expectedToken string) gin.HandlerFunc {
	return func(c *gin.Context) {
		token := c.GetHeader(HeaderAPIToken)

		if token == "" {
			response.Unauthorized(c, "missing API token")
			c.Abort()
			return
		}

		if token != expectedToken {
			response.Unauthorized(c, "invalid API token")
			c.Abort()
			return
		}

		c.Next()
	}
}
