2

我有一个用户的应用程序,这些用户有很多属性,其中一些是公共的,有些是默认私有的,如果用户选择这样做,它们可以变成公共的。

如何处理私有属性的获取?我的意思是,我想要这样,例如,如果我尝试获取所有用户的属性,我将获得他的所有公共属性,以及他的私有属性的一些空值(而不是未经授权的错误消息)。

我还想以某种方式覆盖它,这样用户就可以轻松获取他的所有数据。

4

2 回答 2

3

正如 DARK_DUCK 已经说过的那样:您将决定在 GraphQL 服务器端模式中属性的解析方法中为某个用户返回什么。

我将用户认证所需的数据保存在 cookie 中。然后我将此身份验证数据传递给根值中的 GraphQL 模式。在私有用户数据的解析方法中,我检查访问权限并返回适当的数据(空或实际数据)。

我制作了一个关于如何使用 relay 和 graphql 处理身份验证和私有数据的小型示例存储库。有关详细示例,请参阅此文件和 posts 属性。

于 2016-07-03T13:13:44.957 回答
1

您的字段的隐私应该在服务器端完成。

您可以将用户模型的全局解析函数中的所有私有属性设置为空,或者在潜在的私有属性中添加解析函数。

然后使用中继,您可以获取所有内容。我是您的组件,您检查空值并显示您想要的内容(例如,一个 Lock 表示该值是私有的)

希望能帮助到你

于 2016-07-03T00:45:06.563 回答