首页 > 解决方案 > Ngxs + WebSocket | 如何拦截连接并添加自定义 HTTP 标头?

问题描述

我正在使用ngxs 'NgxsWebsocketPluginModule从我的 Angular 应用程序中创建一个 websocket。为了对连接的客户端进行身份验证,我的服务器需要在升级到 websocket 的 HTTP 连接的 HTTP 标头中存在身份验证令牌。由于ngxs 文档的 websocket 示例仅说明了如何通过 websocket 连接、发送和接收消息,因此我正在寻找一个示例,如何为此 Web 套接字连接编写拦截器以附加自定义 HTTP 标头。

标签: angularwebsocketngxs

解决方案


面临同样的问题,但以下解决方法可以以另一种方式(使用票证)对用户连接进行身份验证:

  1. 请求 Web-socket 连接票证(Authorization在您的 JWT 中使用标头)。
  2. 带有选项的调度ConnectWebSocket操作,其中包括您的 web-socket url 和作为查询参数的票证。
  3. 在接受连接握手之前验证票证(在您的服务器中)。

推荐阅读