reactjs - 在 GraphQL/Relay 中处理隐私

标签 reactjs graphql relayjs graphql-js

我有一个应用程序,其中的用户具有许多属性,其中一些属性是公共(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/

相关文章:

javascript - 一种允许 React 共享组件获取配置属性而无需一路向下传递的干净方法

graphql - 如何在 prisma 订阅中返回自定义数据

typescript - 如何在用 TypeScript (TSX) 编写的 React 应用程序中使用 Facebook Relay?

node.js - 收到错误 "Could not find preset ' react 服务器'相对于目录...”

reactjs - react Webpack。为什么从子组件调用函数时会出现错误?

javascript - 在表中单击时调用方法并传递链接值?

过滤数据结构 AND/OR/NOT 的算法(类似于 GraphQL 实现)

express - GraphQl、Sequelize-CLi、模型打包器 - sequelize.import 不是函数

javascript - 中继 createFragmentContainer 的现代用途

javascript - GraphQL中如何获取peer字段?