我有一个应用程序,其中的用户具有许多属性,其中一些属性是公共(public)的,一些默认情况下是私有(private)的,如果用户选择这样做,则可以变为公共(public)属性。
如何处理私有(private)属性的获取? 我的意思是,我希望,例如,如果我尝试获取用户的所有属性,我将获得他的所有公共(public)属性,以及他的私有(private)属性的一些空值(而不是未经授权的错误消息)。
我还想以某种方式覆盖这个,这样用户就可以毫无困难地获取他的所有数据。
最佳答案
正如 DARK_DUCK 已经指出的那样:您将决定在 GraphQL 服务器端架构中属性的解析方法中为特定用户返回什么内容。
我将用户身份验证所需的数据保存在 cookie 中。然后我将此身份验证数据传递到根值中的 GraphQL 架构。在私有(private)用户数据的解析方法中,我检查访问权限并返回适当的数据(空或实际数据)。
我制作了一个关于如何使用中继和 graphql 处理身份验证和私有(private)数据的小型示例存储库。请参阅this file以及 posts 属性的详细示例。
关于reactjs - 在 GraphQL/Relay 中处理隐私,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38121215/