在我的游戏中,一个用户可以对另一个用户造成伤害,并拿走他们的一些金币。gold 变量存储在其他用户的 PFUser 对象中。一个用户如何更改存储在其他用户 PFUser 对象中的黄金的值?
问问题
3018 次
3 回答
10
您不能保存或删除未经身份验证的 PFUser。实现该功能的方法是为公共读/写用户变量设置一个单独的类
从解析文档 -
用户对象的安全性
PFUser 类默认是安全的。存储在 PFUser 中的数据只能由该用户修改。默认情况下,任何客户端仍然可以读取数据。因此,一些 PFUser 对象经过身份验证并且可以修改,而其他对象是只读的。
具体来说,除非 PFUser 是使用经过身份验证的方法(如 logIn 或 signUp)获得的,否则您无法调用任何保存或删除方法。这确保只有用户可以更改他们自己的数据。
于 2013-05-22T15:48:48.720 回答
4
最好的解决方案是使用云代码来处理它。从客户端操作未经身份验证的 PFUser 对象会引发一些安全问题。有一个云功能,如:
Parse.Cloud.define("stealGold", function(request, response) {
var query = new Parse.Query(Parse.User);
query.equalTo("objectId", request.params.targetObjectId);
query.find({useMasterKey : true}).then(function(results) {
// process the result of the query here
// Save the user object
});
});
您可以在此处的文档中了解它:https ://parse.com/docs/data#security-cloudcode
于 2014-01-23T03:35:13.077 回答
0
您可以使用PFQuery 中的getUserObjectWithId。
于 2013-05-02T18:40:31.617 回答