package service import ( "strings" ) // CookieValues returns all values for the given cookie name from a raw Cookie header. // It preserves header order so callers can try candidates until one validates. func CookieValues(rawHeader, cookieName string) []string { rawHeader = strings.TrimSpace(rawHeader) cookieName = strings.TrimSpace(cookieName) if rawHeader == "" || cookieName == "" { return nil } prefix := cookieName + "=" values := make([]string, 0, 2) for _, part := range strings.Split(rawHeader, ";") { part = strings.TrimSpace(part) if !strings.HasPrefix(part, prefix) { continue } value := strings.TrimSpace(strings.TrimPrefix(part, prefix)) if value != "" { values = append(values, value) } } return values }