Parse platform 解析-使用用户ACL共享用户信息

Parse platform 解析-使用用户ACL共享用户信息,parse-platform,Parse Platform,我有一个问题,关于在某些情况下允许用户之间的用户信息可见的最佳方式 例如,我的应用程序将有一个“FriendRequest”类来模拟用户之间的好友请求。“FriendRequest”类有两个用户指针,“toUser”和“fromUser” 我还为所有用户对象设置了默认ACL,以限制该用户仅对读/写操作的访问 我的问题是,当用户发送好友请求时,我为每个用户添加指针,并设置“FriendRequest”对象的ACL以允许两个用户对该对象进行读写。但是,当用户检索朋友请求数据时,“fromUser”数

我有一个问题,关于在某些情况下允许用户之间的用户信息可见的最佳方式

例如,我的应用程序将有一个“FriendRequest”类来模拟用户之间的好友请求。“FriendRequest”类有两个用户指针,“toUser”和“fromUser”

我还为所有用户对象设置了默认ACL,以限制该用户仅对读/写操作的访问

我的问题是,当用户发送好友请求时,我为每个用户添加指针,并设置“FriendRequest”对象的ACL以允许两个用户对该对象进行读写。但是,当用户检索朋友请求数据时,“fromUser”数据不会从查询中返回,因为“fromUser”的ACL只允许访问该用户,而不允许访问接收朋友请求的其他用户

让这些数据可见的最佳方式是什么?每当创建“FriendRequest”时,我是否应该向“fromUser”ACL添加读取权限,以便“toUser”能够读取其信息

感谢您的帮助


谢谢

Ok让我们设置一些示例数据,以使示例问题更清晰

用户
表中:

{objectId:"BBBB", name:"Bob", age:18, email:"bob@email.com", ACL: only Bob Read/Write} 
{objectId:"JJJJ", name:"Jane", age:27, email:"jane@email.com", ACL: only Jane Read/Write}
于是鲍勃向简发送了一个朋友请求。您可以在
FriendRequest
类中创建一个新对象

{objectId:"XXXX", fromUser: <ptr to BBBB>, toUser: <ptr to JJJJ>, ACL: Bob and Jane Read/Write}

因此,当Bob创建请求时,他将自己的信息放入请求对象中。简可以阅读这些信息。请求完成后,您可以这样做,以便Jane可以读取Bob的数据,或者您可以有其他一些表
Friendlations
,其中描述了这些关系(同样,复制相关数据,如果这使您更安全的话)。

在此步骤:检索朋友请求数据,即“fromUser”查询未返回数据,因为的ACL。。。您可以在读取时使用解析“主密钥”。请参阅第节=更新角色下的REST API文档,其中提到“X-Parse-Master-Key”。这将包括在将新密钥包含在标题中之前没有权限获取的数据。@RobertRowntree我想如果您将上面的一些功能推迟到解析云函数,那么您可以使用主密钥。不过,您不希望在终端用户设备上使用它。(因为恶意用户不难获得该密钥,那么您的数据就完了)。@ahar083谢谢您的回复。我认为您的选项1或数据复制选项在这里是最好的。这类问题提出了另一个一般性的问题,即在好友请求获得批准后,如何使用户信息可见。例如,如果他们确实批准了一个请求,我会使用用户的ACL来允许他们所有的“朋友”进行读取访问吗?我还考虑为每个用户创建一个角色,该角色将存储一个标识其朋友的用户关系列表,并允许在用户的ACL上对该角色进行读取访问。想法?@koriner在深入探讨我们如何设置事物的技术细节之前,我应该问一下——在“用户”对象中是否有您不希望其他人轻松访问的信息?例如,如果一个用户对象包含一个用户的名字,一个国家,那么让它对所有用户都可读就更好(也更简单)。然而,如果它包含了他们的出生日期、家庭地址、电话号码,你可能不想让它共享。因为在最初的问题中,您说您将用户对象设置为其他人无法读取,所以您必须存储一些敏感信息,对吗?@ahar083是-用户信息还将包含电子邮件和电话号码,这些数据我们不希望其他用户能够访问,除非信息所有者特别授予访问权限。您在这里有什么建议,包括我上面描述的角色解决方案,或者其他什么?您找到了解决这个问题的方法吗?我最后只是在FriendRequest模型中添加了其他字段,例如fromUserID、fromUserName等等。
{objectId:"XXXX", 
fromUser: <ptr to BBBB>, 
fromUserName: 'Bob'
fromuserEmail: 'bob@email.com'
toUser: <ptr to JJJJ>, 
ACL: Bob and Jane Read/Write}