使用云代码监控新用户并有条件地将其添加到ACL

时间:2013-07-28 23:36:23

标签: parse-platform

假设通过Parse应用程序,用户A向Facebook好友B发送邀请以加入他编辑对象O(例如,参与正在进行的对话)。

B通过Facebook通知此事,但由于他尚未注册该应用程序,因此尚未作为PFUser存在,因此A无法将其添加到O的ACL中。

然而,当B将来注册时,他应该立即获得对象O的写访问权。他不能在客户端添加自己,因为他没有写入权限。因此必须在后端实现。

问题:实现以下目标的云代码是什么样的:

  1. 无论何时创建新的PFUser,都会触发检查字符串数组中是否存在特定字符串(即,在facebookID字符串数组中是否存在该用户的facebookID)
  2. 如果找到匹配项,请为此新用户授予PFObject O上的ACL写入权限
  3. (我对java脚本/云代码没有任何经验,因此示例代码对于开始我的方向非常有帮助。)

    谢谢!

1 个答案:

答案 0 :(得分:2)

在“可能代码”中,您可以告诉它使用主密钥,因此它可以绕过正常的限制。

我希望这将是一个多步骤的过程:

  • 用户A邀请朋友B,这将创建一个链接到用户A,对象O的InvitationToEdit记录,并包含一些东西来帮助我们识别朋友B(Facebook ID,电子邮件或某些令牌)
  • 当朋友B注册时,该识别信息将用于激活待处理的邀请

Cloud Code可以作为新邀请的朋友访问request.user,并使用标识符。然后,它可以搜索所有InvitationToEdit记录,并为每个记录添加request.user到对象O的ACL。

许多执行此类操作的系统会生成GUID作为单个邀请的令牌,而接受邀请的页面将允许他们登录或注册。完成后,处理并丢弃单个令牌。通常在令牌上有某种到期(例如几天)。

更新:(带链接)

您可以了解如何撰写Cloud Code functions。基本上这些函数的内容只是JavaScript,因此Updating Objects上的文档值得阅读,以及其他文档。