【问题标题】:Parse - using ACL for future usersParse - 为未来的用户使用 ACL
【发布时间】:2014-11-18 05:12:33
【问题描述】:

在我的基于解析的应用程序中,每个用户都会有一个默认为他私有的笔记列表。 该用户将能够邀请其他用户(由他们的电子邮件地址标识)查看笔记。

我想为此使用 ACL,但想知道如果受邀用户尚未注册为 Parse 用户,我该怎么办。在这种情况下,笔记创建者用户无法将他添加到笔记的 ACL 中,因为还没有 ParseUser 对象。

此类邀请的最佳解决方案是什么?

我可以为此使用 ACL 还是必须自己管理访问权限?

【问题讨论】:

    标签: parse-platform


    【解决方案1】:

    如果您熟悉称为 Cloud Code 的 Parse 技术,那么您应该查看https://gist.github.com/mikevansnell/5140654

    此代码根据传递给函数的电子邮件创建未来用户,并为其分配一些随机密码。然后将包含所有信息(包括密码)的邀请电子邮件发送到传递的电子邮件。当受邀用户访问应用程序时,只需填写 logi

    【讨论】:

    • 你能从你的 iOS 应用外部调用云代码吗?例如,我希望将详细信息输入到 aweber.com 上的表单中,然后调用云代码来创建用户或只是一个对象。
    • 我不知道你是否有能力创建用户,但你绝对可以创建所有其他对象。用户对象的创建有一些限制,只需尝试一下或在解析文档中阅读即可。
    【解决方案2】:

    这是我能想到的两个选项。

    1) 使用 ACL

    修改注释的 ACL,使其对已注册的受邀用户具有读取权限。任何未注册的用户都会在名为 NewUserAccess 的单独表中获得包含电子邮件和注释 ID 的新行。每当创建用户时,使用注册电子邮件查询 NewUserAccess 的行。使用新创建的用户的 objectId 更新这些注释。

    2) 自行管理访问权限

    第二个选项只是创建一个名为 UserAccess 的表。这样,当您邀请用户时,您可以使用他们的电子邮件和他们有权访问的注释创建一行。如果用户更改了需要额外工作的电子邮件,这将导致问题。

    【讨论】:

    • 关于选项1,当登录的用户不是对象的所有者时,更改笔记的ACL不是问题吗?
    • 如果你在Cloud Code中做,你可以使用:Parse.Cloud.useMasterKey();
    【解决方案3】:

    如果你想使用 ACL 来控制用户对类、对象的访问

    只需在内置类 "role" 的解析中创建一个新的 _Role='registered_user' 。

    当用户 xyz 注册时,将其添加到角色 'registered_user'

    在您希望将 READ 限制为角色的类的 ACL 中,使用以下内容:

    "ACL":{"registered_user":{"read":true}}
    

    在 ACL 中显式设置 READ 权限而不是使用“*”通配符将锁定对“registered_user”角色成员的访问。

    它就像文件系统中的组。

    【讨论】:

    • 我想如果我使用角色,我将不得不为每个笔记创建一个角色,因为用户可以为他创建的不同笔记邀请不同的用户..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多