我最近试图锁定解析项目的安全性,除了公共创建以外已禁用。
但是,如果我尝试将现有用户链接到Facebook,请执行此操作,如下所示:
[PFFacebookUtils linkUser:[PFUser currentUser] permissions:nil block:^(BOOL succeeded, NSError *error) { /* ... */ }];
我在控制台上看到以下错误:
2015-02-04 00:11:19.856 Walker[43201:381190] Error: This user is not allowed to perform the update operation on _User. You can change this setting in the Data Browser. (Code: 119, Version: 1.5.0)
尽管当前用户对自己具有读/写权限:
如果我启用公开更新'对于User类,这个问题会消失吗? 有没有办法在不启用公共访问权限的情况下启用当前用户的更新?
答案 0 :(得分:0)
我最终得到了Hector Ramos在Parse Google Group上的以下答案(https://groups.google.com/d/msg/parse-developers/JFMrXheHgdo/1dw_6dl1EmUJ)
要将用户链接到Facebook,必须修改用户对象。 您需要为此课程启用更新。每个对象的ACL不能 增加权限范围超过类级别ACL 据我所知,提供。
我认为这意味着我必须为该类启用更新才能进行任何更新。
我仍然有点担心这可能会允许未经授权更新我的用户帐户(因为这个答案并非100%清除)。为了安全起见,我还在保存挂钩之前添加了一个CloudCode,它将用户访问控制列表(ACL)设置为仅允许他们访问此对象(根据我的应用程序要求)。
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
// Set ACL for new User to only that user
request.object.setACL(new Parse.ACL(Parse.User.current()));
response.success();
});