我有一个用户的应用程序,这些用户有很多属性,其中一些是公共的,有些是默认私有的,如果用户选择这样做,它们可以变成公共的。
如何处理私有属性的获取?我的意思是,我想要这样,例如,如果我尝试获取所有用户的属性,我将获得他的所有公共属性,以及他的私有属性的一些空值(而不是未经授权的错误消息)。
我还想以某种方式覆盖它,这样用户就可以轻松获取他的所有数据。
我有一个用户的应用程序,这些用户有很多属性,其中一些是公共的,有些是默认私有的,如果用户选择这样做,它们可以变成公共的。
如何处理私有属性的获取?我的意思是,我想要这样,例如,如果我尝试获取所有用户的属性,我将获得他的所有公共属性,以及他的私有属性的一些空值(而不是未经授权的错误消息)。
我还想以某种方式覆盖它,这样用户就可以轻松获取他的所有数据。
正如 DARK_DUCK 已经说过的那样:您将决定在 GraphQL 服务器端模式中属性的解析方法中为某个用户返回什么。
我将用户认证所需的数据保存在 cookie 中。然后我将此身份验证数据传递给根值中的 GraphQL 模式。在私有用户数据的解析方法中,我检查访问权限并返回适当的数据(空或实际数据)。
我制作了一个关于如何使用 relay 和 graphql 处理身份验证和私有数据的小型示例存储库。有关详细示例,请参阅此文件和 posts 属性。
您的字段的隐私应该在服务器端完成。
您可以将用户模型的全局解析函数中的所有私有属性设置为空,或者在潜在的私有属性中添加解析函数。
然后使用中继,您可以获取所有内容。我是您的组件,您检查空值并显示您想要的内容(例如,一个 Lock 表示该值是私有的)
希望能帮助到你