簡體   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