解析服务器注册无效会话令牌错误
Posted
技术标签:
【中文标题】解析服务器注册无效会话令牌错误【英文标题】:Parse-Server signUp invalidsessiontoken error 【发布时间】:2016-12-03 00:27:49 【问题描述】:我在调用user.signUp()
时收到无效会话令牌错误。
这个过程是我调用我的云代码函数来创建一个新用户并发送回 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 总是在用户注册错误时出现。 我不确定是什么原因造成的,因为我认为当时甚至不应该有会话令牌。当在客户端发现 invalidsessiontoken 错误时,我尝试调用注销,然后再次调用云代码,但它会导致无限循环。
【问题讨论】:
你为什么不在客户端做呢?当您使用 become 方法时,您可以发布您的客户端吗? 【参考方案1】:当您使用 user.signUp 时,在创建用户后它会连接用户。 这种情况下的问题是,在云代码中连接不是一个好主意。
它们与常规解析中的云代码不同。如果您在一个功能中连接并且另一个用户运行云功能,您仍然与第一个用户连接。
出于同样的原因,他们在云代码中没有 Parse.User.current()
。
我认为最好的选择是从客户端注册。您不必传递会话令牌并使用become
函数。
如果要检查值使用beforesave
触发器,然后决定是否创建用户。
【讨论】:
谢谢@Alon,等我回到我的电脑上测试时,我会把注册转移到客户端 我决定在云代码中调用 signUp 的一个原因是因为它更安全 为什么?看看我对答案的编辑,使用beforesave
trigger
这似乎工作得更好,我似乎不再收到那个错误了。以上是关于解析服务器注册无效会话令牌错误的主要内容,如果未能解决你的问题,请参考以下文章