My Cloud Code定义了一些使查询需要_User对象的函数。根据我对Parse文档的理解,我可以使用Parse.User.current()
问题在于它有效,有些则无效。它看起来不稳定。
这些方法似乎有问题:
Parse.User.become()
Parse.User.current()
它会在一秒内成功,在下一秒内会出现141错误。
重要提示:我正在使用REST api,通过CURL请求进行测试,并通过标题中的sessionToken进行用户验证。
Parse.Cloud.define("checkUser", function (request, response) {
var currentUser = Parse.User.current();
if (currentUser) {
response.success( currentUser );
} else {
response.error("Error");
}
});
我尝试了一种不同的方法(就像测试一样),发送sessionToken然后成为用户,但遇到了同样的问题。
Parse.Cloud.define("checkUser", function (request, response) {
Parse.User.become(request.params.token).then(function (user) {
response.success( user );
}, function (error) {
response.error("Error[" + error.code + "] - " + error.message);
});
});
我不确定Parse REST api。老实说,我正在考虑尝试另一种选择。有什么想法吗? TKS
更新:我尝试了 Jake T。建议也没有成功。我有一次正确的用户,突然不能了。有141个错误。我可以访问用户电子邮件,但无法使用它获取孔用户。
Parse.Cloud.define("checkUser3", function(request, response) {
var user = request.user;
user.fetch().then(
function(user)
{
//Do stuff with the user now
console.log("----checkUser3 - _User: " + user.get("email"));
response.success( user );
},
function(error)
{
response.error("There was an error fetching your user: " + error.message);
}
);
});
日志:
答案 0 :(得分:0)
那是客户端代码。对于云代码,请使用var user = request.user;
request.user设置为发出云代码请求的用户。但是,从request.user返回的对象只是用户的“shell”,具有对象ID并在日期创建。如果您想要完整的用户对象,则必须获取此用户。使用承诺:
var user = request.user;
user.fetch().then(
function(user)
{
//Do stuff with the user now
response.success();
},
function(error)
{
response.error("There was an error fetching your user: " + error.message);
}
);