package middleware import ( "strings" "github.com/gin-gonic/gin" "github.com/sundynix/sundynix-gateway/internal/auth" ) // CtxUserID 是鉴权后写入 gin.Context 的已验证用户 ID 键。 const CtxUserID = "uid" // Auth 解析 Authorization: Bearer ,校验通过则把已验证 userID 写入上下文。 // 非阻断:无 token / 无效 token 时不报错,由各 handler(经 userID 兜底 header)或 // 后续 RequireAuth 决定是否放行。 func Auth() gin.HandlerFunc { return func(c *gin.Context) { h := c.GetHeader("Authorization") if strings.HasPrefix(h, "Bearer ") { if uid, err := auth.Parse(strings.TrimSpace(h[len("Bearer "):])); err == nil { c.Set(CtxUserID, uid) } } c.Next() } }