Parse Cloud中的万能钥匙是什么?

时间:2014-07-09 19:01:11

标签: objective-c parse-platform

有人可以向我解释一下,Parse Cloud Code中的master key是什么?

最近实施的CC功能(使用主密钥)是否有可能改变其他非Cloud Code功能的行为?

作为一个实例,您有一个正常工作的解决方案,允许当前用户将其他PFUser个对象添加到关系中,并在需要时删除它们。在此之前,您不需要master key,因为您使用当前用户编写PFUser currentUser。稍后您要创建另一种类型的用户关系,在其中您要编写另一个PFUser对象,现在这次需要使用master key,因为如果没有这个,currentUser将无法写入另一个PFUser个对象。因此,您创建一个Cloud Code文件来处理此问题,并为实际currentUser提供合法性以便编写其他用户。现在一切正常,当实际用户想要编写其他用户对象时,我们不会收到错误。然而事情发生了。当currentUser尝试从他的第一个PFRelation删除数据时(在新的cc函数之前也有效),他得到了我们在第一次尝试写另一个之前得到的错误..user must be authenticated via logIn or signUp用户。

我猜我们使用主密钥会覆盖现有的/原始的安全选项 我们需要为其他所有功能实现它。我对吗?如果是,我该如何处理?或者是否可以在main.js cc文件中设置不同的限制,并且每个“旧”函数将以相同的方式工作以及使用主密钥的新工作?

我真的很感激有关这个主题的任何信息,因为这对我来说是一个巨大的黑洞。

1 个答案:

答案 0 :(得分:9)

主密钥会覆盖所有安全性,例如ACL或基于类的权限。它就像" root"密码。

您应该仅在需要时调用它,因为使用Parse.Cloud.useMasterKey();启用后当前请求的所有方法都将使用主密钥。

您可以通过将选项传递给单个查询/保存/等方法来有选择地使用它。

query.find({ useMasterKey: true }).then(function(results) { // ...

object.save(null, { useMasterKey: true }).then( // ...