IBM bluemix 上 NodeRED 中的 WebSocket 标头
Posted
技术标签:
【中文标题】IBM bluemix 上 NodeRED 中的 WebSocket 标头【英文标题】:WebSocket Headers in NodeRED on IBM bluemix 【发布时间】:2017-01-19 09:27:50 【问题描述】:我知道 WebSocket api 没有定义标头。
-
根据this,我们可以使用 URL 设置基本身份验证。
ws = new WebSocket("ws://username:password@example.com/service")
在 NodeRED(WebSocket IN 节点)中,需要对仅使用提供的用户名和密码进行连接的用户进行身份验证。请让我知道在 NodeRED 中处理这个?
-
下一个替代方案是客户端上的 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"
【问题讨论】:
不清楚你在这里问什么。您是否正在尝试对 Node-RED 中的 WebSocket 侦听器的传入连接进行身份验证? 是的。我正在尝试验证到 WebSocket In 节点的传入连接。 【参考方案1】:目前我认为这是不可能的。
Node-RED 无权访问将 HTTP 连接转换为 WS 连接的 HTTP 升级请求,而在该连接中必须进行任何身份验证。
这可能应该更详细地研究,看看是否有什么可以做的。
【讨论】:
这很糟糕。那么如何阻止来自未授权用户的未授权请求? 目前此功能不可用,NodeRED 开发团队将在未来添加此功能。我在一月份向他们提出了更改请求。以上是关于IBM bluemix 上 NodeRED 中的 WebSocket 标头的主要内容,如果未能解决你的问题,请参考以下文章