2015-09-16 40 views
0

我正在用Parse.com Javascript SDK編寫AngularJS應用程序;Parse.com創建對象參考用戶

我想發送一個請求來創建一個名爲「Activity」的對象,其中「Activity」對象具有對創建者用戶的引用(例如:「owner」)。

我該怎麼做?我需要雲代碼嗎?如果不是,那麼這不會是一個安全漏洞,任何人都可以使用某個客戶端ID來創建對象嗎?

回答

0

實現此目的的安全(和正確)方法是在服務器端實現Create函數。例如:如果活動有一個「標題」字段,並且我們希望將另一個對象的引用添加爲關係列(在本例中爲用戶),我們將編寫以下雲代碼:

Parse.Cloud.define("createActivity", function (request, response) { 
    var Activity = Parse.Object.extend("Activity"); 
    var activity = new Activity(); 

    activity.set('title', request.params.activity.title); 
    activity.set('user', Parse.User.current()); 

    activity.save(null, { 
     success: function (activity) { 
      response.success({activity: activity}); 
     }, 
     error: function (activity, error) { 
      response.error({ activity: activity, error: error }); 
     } 
    }); 
}); 

從我們的angularJS應用程序中,我們像使用任何其他雲代碼函數一樣消費Cloud代碼:

function create() { 
     Parse.Cloud.run('createActivity', { activity: $scope.activity }, { 
      success: function (response) { 
       // object created! 
       }, 
      error: function() {} 
     }); 
    };