package middleware import ( "net/http" "strings" "memora-api/internal/service" "github.com/gin-gonic/gin" ) func AuthRequired() gin.HandlerFunc { return func(c *gin.Context) { authHeader := c.GetHeader("Authorization") if !strings.HasPrefix(authHeader, "Bearer ") { c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "未登录"}) return } token := strings.TrimPrefix(authHeader, "Bearer ") uid, err := service.ParseToken(token) if err != nil { c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "登录已失效"}) return } c.Set("user_id", uid) c.Next() } }