- Go + Gin + GORM + PostgreSQL backend - RESTful API for material management - Docker deployment support - Database partitioning for billion-scale data - API documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
33 lines
522 B
Go
33 lines
522 B
Go
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()
|
|
}
|
|
}
|