parse-server user.signUp()没有创建会话

时间:2016-11-30 22:22:57

标签: parse-server

环境:

  1. Node.js 7.2
  2. parse-server 2.2.25
  3. 在我们的云代码中,当我们启用PARSE_SERVER_ENABLE_EXPERIMENTAL_DIRECT_ACCESS选项时,我们遇到Parse.User signup()调用没有为用户帖子调用创建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选项,但它并不清楚。

1 个答案:

答案 0 :(得分:1)

我把它发布到github,因为我认为这是一个bug。这实际上是预期的行为。请参阅:Github Discussion

我们的配置不是Parse使用的标准方式。这是一个Node.js网络应用程序,可以对云代码进行ajax调用。 Cloud代码对Parse进行Javascript API调用。这意味着我们没有Installation对象或installationIds。

我们无法使用signUp自动登录的解决方案是在signUp响应中调用Parse.User.login。