解析服务器signUp invalidsessiontoken错误

时间:2016-12-03 00:27:50

标签: javascript node.js cloud-code parse-server

调用user.signUp()时,我收到了invalidsessiontoken错误。 这个过程是我调用我的云代码函数来创建一个新用户并发送回sessionToken以成为客户端的那个用户。 云代码:

var user = new Parse.User();
user.set("firstname", fname);
user.set("lastname", lname);
user.set("birthdate", birthdate);
user.set("username", email);
user.set("email", email);
user.set("password", pass);
user.set("emailVerified", false);
user.signUp(null, {
    success: function(user){
        var acl = new Parse.ACL();
        acl.setPublicReadAccess(false);
        acl.setPublicWriteAccess(false);
        user.setACL(acl);
        user.save(null, {
            useMasterKey: true
        }).then(function(user){
            sendEmailVerification(user.get("email"), function(error){
                if(error){
                    console.log("USER SENDEMAILVERIFICATION ERROR!!!!!!!!!!!!!!");
                    sendMsg(res, error.code, error.message);
                    return;
                }
                sendMsg(res, 200, user.getSessionToken());
            });
        }, function(error){
            console.log("USER SAVE ERROR!!!!!!!!!!!!!!!!");
            sendMsg(res, error.code, error.message);
        });
    }, error: function(user, error){
        console.log("USER SIGNUP ERROR!!!!!!!!!!!!!!!!!!")
        sendMsg(res, error.code, error.message);
    }
});

invalidsessiontoken始终出现在USER SIGNUP ERROR上。 我不确定是什么导致这种情况,因为我认为此时甚至不应该有会话令牌。当在客户端发现invalidsessiontoken错误时,我尝试再次注销logout,然后再调用云代码,但它会导致无限循环。

1 个答案:

答案 0 :(得分:1)

使用user.signUp时,在创建用户后连接用户。 在这种情况下的问题是,在云代码中连接不是一个好主意。

他们与普通解析中的云代码不同。如果您连接一个功能而另一个用户运行云功能,您仍然可以与第一个用户连接。 出于同样的原因,他们在云代码中没有Parse.User.current()

我认为最好的选择是从客户端注册。您不必传递会话令牌并使用become函数。

如果要检查值,请使用beforesave触发器,然后决定是否创建用户。

相关问题