使用 Express js、passport 保护 GraphQL 查询

2024-02-25

我已经开始在我的 Express JS 项目中使用 graphql,但我想知道如何保护我的一些 GraphQL 查询。 以前我使用 Passport js(JWT) 来实现此目的,效果很好。确保路线安全确实很容易,但使用 graphql(express-graphql) 我找不到任何解决方案。 此外,如果有某种基于角色的解决方案来保护特定领域,那就太好了。有什么好的教程如何保护 graphQL 吗?


最后我检查了那里没有任何真正好的教程来展示如何保护 GraphQL 端点。然而,社区(GraphQL 和 Apollo slack 通道)的共识是,最好将身份验证与 GraphQL 分开(例如使用 Passport),并在解析函数中进行授权,可能通过使用一些基于角色的身份验证来装饰它们。

我目前可以提供的最好的链接是这个帖子 https://dev-blog.apollodata.com/a-guide-to-authentication-in-graphql-e002a4039d1我不久前写过一篇关于使用 Passport.js 为 GraphQL 端点设置身份验证的文章。我希望它有帮助!

我目前正在使用 Apollo 编写 React + Node.js 的全栈 GraphQL 教程,我计划在其中编写有关 Auth 的部分内容。我将在发布后立即尝试更新此答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Express js、passport 保护 GraphQL 查询 的相关文章

随机推荐

  • 将函数应用于数据框中的每一列,观察每列现有的数据类型

    我正在尝试获取大数据框中每列的最小值 最大值 作为了解我的数据 我的第一次尝试是 apply t 2 max na rm 1 它将所有内容视为字符向量 因为前几列是字符类型 所以一些数字列的最大值是 99 5 然后我尝试了这个 sapply
  • SQL 聚合函数别名

    我是 SQL 初学者 这是我被要求解决的问题 假设大城市被定义为place类型的city人口为 至少100 000 编写返回方案的 SQL 查询 state name no big city big city population 订购st
  • 无法使用 SES 接收 S3 存储桶中的电子邮件

    我正在尝试创建一个系统 其中电子邮件将发送到我公司的邮箱 并且 S3 存储桶将存储这些电子邮件 每当存储新电子邮件时 都会触发 Lambda 函数来存储电子邮件并回复发件人 第二部分 然而 我没有成功地实现第一部分 我有一个托管在 AWS
  • 在 Web API 控制器中接收 Json 反序列化对象作为字符串

    以下是我从 Ui 输入的 Json data Id 1 Id 2 Id 3 我可以在如下所示的对象结构中没有问题地接收它 public class TestController ApiController
  • 动态生成角度为2的输入字段类型并设置字段的类型

    我是 Angular 2 的新手 尝试根据使用 Angular 2 的模型动态生成一堆输入字段 有些字段是密码字段 如果是的话 我想让输入字段输入密码 我写过这样的东西 div div
  • 引用主题的原色而不是 Material UI 中的特定颜色

    使用 ReactJS 和 Material UI 我有一个项目 其中我更改了主题颜色 const newTheme getMuiTheme fontFamily Roboto sans serif palette primary1Color
  • Angular 2 和 Spring Boot - 部署到战争

    首先我要说的是 我是 Maven Spring 的新手 并且很难弄清楚当我的目录不遵循首选 Maven 结构时该怎么做 我按照说明通过 Angular 2 和 Spring Boot 设置项目tutorial https blog jdri
  • 具有多个 IN 参数的存储过程

    我得到了以下程序 create or replace PROCEDURE create indexes tbl name index IN VARCHAR2 tbl name vehicle IN VARCHAR2 tbl name dea
  • 检查 gRpc 服务器是否在 C# 中运行

    我正在用 C 编写一个 gRpc 服务器 如果服务器因任何原因关闭 我想添加自动恢复 重试实现 经过研究 我遇到了拦截器并感到兴奋 但看起来它只支持 Go 我找不到 gRpc C 的任何类似内容 如何在 gRpc CSharp 中处理自动恢
  • 在 Angular 中下载文件时无法获取进度和文件

    我有一个 Angular 应用程序 我只想下载一个文件 到目前为止 这是我的代码 this fileNavigationService downloadFile element subscribe result gt this genera
  • GCP 中的 AI Notebook 和 Cloud Datalab 有什么区别?

    我已经搜索了这个问题的答案 这个问题是重复的 但我需要澄清 因为我看了两个不同的地方 答案有点相反 以下堆栈溢出answer https stackoverflow com a 58329351 9146820提到Google Cloud
  • QT5文本渲染问题

    我在基于 MIPS 的平台上交叉编译了 QT5 每当我运行包括示例应用程序 其中包含文本 的应用程序时 它首先绘制文本 然后使用文本颜色的 矩形 填充来绘制文本区域 所以最后我在所有显示文本的地方看到了一个黑色矩形 如果我改变文本颜色 矩形
  • 词汇环境和函数范围

    javascript 中的词法环境和作用域是一回事吗 根据我刚刚从 JavaScript Ninja 的秘密 2 e 中学到的内容给出答案 它们是不同的概念但相关 我们需要定义一个相关的概念 执行上下文及其堆栈去理解 执行上下文 执行上下文
  • Next.js:如何使动态路由与空间一起工作?

    我有一个getStaticPaths生成两条几乎相同的路径的函数 foo 20bar and foo bar My foo bar路径效果很好 但由于某种原因foo 20bar路径不起作用 它会路由到我的 404 页面 无论我是否真的浏览到
  • 如何使用 DynamoDBAutoGenerateKey 为我提供自动生成的密钥?

    我需要使用 AWS SDK 中的 DynamoDBAutoGenerateKey 来为我提供一个随机密钥 字符串类型 然后我可以用它来执行某些操作 我在网上找不到任何这样做的例子 虽然看起来应该相对简单 但我真的很难让它发挥作用 任何人都可
  • 像模板一样保存多个 CKEditor 内联编辑器字段的数据

    我正在建立一个模板系统 设计人员可以在其中提交 HTML5 设计并允许用户添加自己的内容 我正在为该应用程序使用 CKEditor 4 2 和 Rails 3 我希望用户能够加载模板页面 然后直接编辑各种内联编辑器 然后通过 JS 和 Aj
  • C# WPF ComboBox - 排除绑定数据的最后一行(或空白)(从 Microsoft Access 绑定)

    目前我正在使用 Microsoft Access 来保存数据 它将绑定到 WPF 组合框 下面的代码几乎可以正常工作 oleDBCommand CommandText SELECT table Col1 table Col2 As COl1
  • 了解所有线程何时完成并处理异常

    我正在使用 Executor 框架使用线程池 即 newFixedThreadPool 启动多个线程 我使用 threadpool submit aThread 提交要由线程池执行的作业 这工作正常 但是我需要确定所有线程何时完成 以便我可
  • click() 事件在 jQuery 中调用两次

    我设置了一个链接元素并在 jQuery 中调用了它的单击事件 但是单击事件调用了两次 请参阅下面的 jQuery 代码 link button button click function attachmentForm slideToggle
  • 使用 Express js、passport 保护 GraphQL 查询

    我已经开始在我的 Express JS 项目中使用 graphql 但我想知道如何保护我的一些 GraphQL 查询 以前我使用 Passport js JWT 来实现此目的 效果很好 确保路线安全确实很容易 但使用 graphql exp