繁体   English   中英

如何将JWT token附加到graphql订阅的header

[英]How to attach JWT token to the header of graphql subscription

我目前正在使用微服务架构构建聊天应用程序,其中身份验证(登录和注册)服务和聊天服务使用 Graphql 分开。我试图将 JWT 附加到请求 header 的查询,变异和订阅中,以从中提取用户 ID 到用于服务中的内部逻辑。 但是,我无法将令牌正确设置为 header 或 Altair Graphql 中的订阅参数,尽管以完全相同的方式为查询和突变成功设置了令牌。 我的问题是;

  1. 有没有办法将 JWT 令牌附加到请求 header?
  2. 有没有更好的方法将 JWT 令牌发送到 graphql 订阅请求?

此外,我尝试为订阅请求设置令牌的方法如下; 这样,我可以从查询和变异中提取令牌。 将令牌设置为 Altair 订阅参数

谢谢你。

websocket API不支持在升级请求中设置任意标头。 这还包括与身份验证相关的标头。

有一些常见的模式可以用来保护 websocket 应用程序的安全。

关于 websocket 上的 GraphQL 订阅,根据您的实施,您可以在连接参数中传递身份验证凭据。 一个例子是在Apollo GraphQL中通过 graphql-ws 和 subscriptions-transport-ws 完成的。

总之,这不是 Altair GraphQL 可以控制的,而是 websocket API 本身的限制。

希望有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM