环境:
在我们的云代码中,当我们启用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选项,但它并不清楚。
答案 0 :(得分:1)
我把它发布到github,因为我认为这是一个bug。这实际上是预期的行为。请参阅:Github Discussion
我们的配置不是Parse使用的标准方式。这是一个Node.js网络应用程序,可以对云代码进行ajax调用。 Cloud代码对Parse进行Javascript API调用。这意味着我们没有Installation对象或installationIds。
我们无法使用signUp自动登录的解决方案是在signUp响应中调用Parse.User.login。