2016-11-30 50 views
0

環境:解析服務器user.signUp()不創建一個會話

  1. Node.js的7.2
  2. 解析服務器2.2.25

在我們的雲代碼,我們有當我們啓用PARSE_SERVER_ENABLE_EXPERIMENTAL_DIRECT_ACCESS選項時,Parse.User註冊()調用不會爲用戶發送調用創建sessionToken時出現問題。

這工作:

Parse.Cloud.useMasterKey(); 
 

 
var user = new Parse.User(); 
 
user.set('username', form_data.userEmail); 
 
user.set('email', form_data.userEmail); 
 

 
user.signUp().then(function(user) { 
 
    // Valid Session Token 
 
    var sessionToken = user.getSessionToken(); 
 
});

因爲我們有所有呼叫重構爲Parse.Cloud.useMasterKey()然後將其作爲一個選項,我們設置PARSE_SERVER_ENABLE_EXPERIMENTAL_DIRECT_ACCESS=1,並重構這個,現在這個失敗:

var user = new Parse.User(); 
 
user.set('username', form_data.userEmail); 
 
user.set('email', form_data.userEmail); 
 

 
user.signUp(null, {useMasterKey: true}).then(function(user) { 
 
    // sessionToken = undefined 
 
    var sessionToken = user.getSessionToken(); 
 
});

我們的想法是,也許getSessionToken也需要useMasterKey選項,但它並不清楚。

回答

0

我發佈了這個給github,因爲我認爲這是一個錯誤。這實際上是預期的行爲。請參閱:Github Discussion

我們的配置不是使用Parse的標準方式。這是一個Node.js web應用程序,它可以對Cloud代碼進行ajax調用。 Cloud代碼對Parse進行JavaScript API調用。這意味着我們沒有安裝對象或安裝標識。

因爲我們無法使用signUp自動登錄,所以解決方案是在signUp響應中調用Parse.User.login。