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