1

我知道 WebSocket api 没有定义标头。

  1. 根据这个,我们可以使用 URL 设置基本身份验证。

ws = new WebSocket("ws://username:password@example.com/service")

在 NodeRED(WebSocket IN 节点)中,需要验证仅使用提供的用户名和密码连接的用户。请让我知道在 NodeRED 中处理这个?

  1. 下一个替代方案是客户端上的 Sec-WebSocket-Protocol 标头。我也试过了。但是 Node-RED 无法查看我设置的内容。
var token = "eyJhbGci";
var options = {
    headers: {
        "Authorization" : token
    }
};
var ws = new WebSocket("wss://example.com/path", options);

请让我知道如何在 NodeRED 中查看这些客户端输入并进行正确的客户端身份验证?我只看到以下内容。

{ "payload": "Hi1", "_session": { "type": "websocket", "id": "fddc366c.0223c8" }, "_msgid": "47061971.b8f9e8" }
4

1 回答 1

1

目前我认为这是不可能的。

Node-RED 无权访问将 HTTP 连接转换为 WS 连接的 HTTP 升级请求,而 WS 连接是必须进行任何身份验证的地方。

这可能应该更详细地研究,看看是否有什么可以做的。

于 2017-01-19T12:53:06.617 回答